編寫sql語句時,最重要的是什麼?

2021-07-25 19:07:09 字數 2069 閱讀 5003

首先,弄清楚需求,

接下來就是編寫了,最重要的就是選定主表

這個很很重要,主表選錯了,可能就是無解或者就是寫出來的sql語句很複雜

在工作中遇到商家發貨位址和退貨位址的例項,之前資料都是存放在t_shipping_address表中,裡面既有商家收貨位址,發貨位址,還有買家的收貨位址,這樣比較亂,現在就是需要重新建立一張表,來儲存商家的發貨位址和退貨位址,新建表t_supplier_address使用supplier_id來作為查詢條件,然而之前t_shipping_address表是通過user_id來作為查詢的,supplier_id和user_id可以通過使用者表t_user來獲取。

首先我選主表選錯了,我選的主表是t_shipping_address(就是不能把user_id更新成supplier_id)

我的思路分二步走,一、先把t_shipping_address表中資料插入到t_supplier_address,

二、再根據t_supplier_address與t_user關聯關係,把user_id更新成t_user表中的supplierid

寫法如下:

insert into t_supplier_address(id,supplier_id,aid,provincename,cityname,areaname,address,name,phone,order_no,companyname,tel,returned,send,comments) 

select id, user_id as supplier_id,aid,provincename,cityname,areaname,address,name,phone,order_no,companyname,tel,returned,send,comments from t_shipping_address 

where user_id in

(select user.id from t_user as user

left join t_shipping_address as shipping on user.id=shipping.user_id 

where type in(2,3) and user.supplierid is not null)

上面操作後還想著使用update來更新

update t_supplier_address set t_supplier_address.supplier_id = t_user.supplierid 

from t_supplier_address,t_user 

where t_supplier_address.supplier_id = t_user.id

結果sql語句就報錯,個人猜測是/*更新 supplier_id即為要更新值又作為查詢條件,行不通*/

最後還是沒有完成,行不通,重回頭來來嘗試乙個sql語句完成,

最後最後,哈哈,請示高人唄,

上來三下五去二就寫完了,我頓時傻眼了

insert into t_supplier_address

select s.id `id`,u.supplierid `supplier_id`,s.aid `aid`,s.provincename `provincename`,s.cityname `cityname`,s.areaname `areaname`,s.address `address`,s.`name` `name`,s.phone `phone`,

s.order_no `order_no`,s.companyname `companyname`,s.tel `tel`,s.returned `returned`,s.send `send`,s.postcode `postcode`,s.comments `comments`

from t_user u 

inner join t_shipping_address s on(u.id=s.user_id)

where u.type in (2,3) and u.supplierid is not null;

我需要t_user中的supplierid欄位,就應該把t_user 作為主表,然後關聯t_shipping_address表

最重要的決定是什麼?

臨近畢業的孩紙總是很糾結很蛋疼 大學裡習慣了每天睡到天黑,玩到天亮 習慣了有事沒事和宿舍的兄弟一起拼酒到爛醉習慣了上課聊扣扣找周公的女兒下棋,習慣了天天過週末,習慣了安逸和懶散 的生活.突然有一天 不用翹課了,沒有點名了,也沒有 來查宿舍了,才發現學生時代真的over了開始害怕了,害怕找不到好工作,...

做銷售最重要的素質是什麼?

我是乙個銷售員,在北京做銷售6年了,有一些感受,不知道對你的疑問是否有幫助,希望能有所啟示。銷售是一項十分有挑戰性的工作,需要很大韌性才能做好的工作。如果說銷售怎樣才能做好,我的經驗是有三點 1 自信。做銷售,自信是不可缺少的,因為銷售的過程中,經常要面對客戶的拒絕,對產品的質疑,還要和同類產品比較...

SEO培訓 SEO 最重要的是什麼

很多人都進入了seo誤區。把seo神話了。其實seo只是一種輔助。seo什麼最重要?找到搜尋引擎和使用者體驗的最佳結合點,才是最重要的。搜尋引擎友好,使用者體驗友好,排名真的很難掉下來,真的。引擎的目標是把最優秀的站放前面,使用者的目標是尋找自己需要的東西。不要把seo看做萬能的。必須和其他方面結合...