【SQL】在SQL Server中多表關聯查詢問題


好久沒有寫SQL語句的多表連接查詢,總在用框架進行持久化操作。今天寫了一個多表關聯查詢,想根據兩個字段唯一確定一條數據

 

失敗的案例如下:

SELECT cyb.id,ad.name 
FROM [GeneShop].[dbo].[t_member_cyb] cyb ,[GeneShop].[dbo].xx_admin ad,[GeneShop].[dbo].t_bg bg
where cyb.hzjg_id = ad.id  and cyb.id = bg.cyb_id 
and 
(cyb.cybbm = 402045 and bg.product_id = 121)
or(cyb.cybbm = 402070 and bg.product_id = 118)

查詢出來的效果,簡直不忍直視。

 

被改良后,使用join on 【inner join on】關聯多表查詢

select cyb.id, xa.name 
from GeneShop.dbo.t_member_cyb cyb 
join GeneShop.dbo.xx_admin xa  on xa.id = cyb.hzjg_id 
join GeneShop.dbo.t_bg bg  on bg.cyb_id = cyb.id 
where (cyb.cybbm=402045 and bg.product_id = 121) or (cyb.cybbm=402070 and bg.product_id = 118)

 

綜上,其實

select 字段1,字段2 from 表1,表2 where 表1.字段 = 表2.字段 and 條件

select 字段1,字段2 from 表1 join 表2  on 表1.字段 = 表2.字段 where 條件

兩個表這樣關聯查詢是沒有問題的。

但是多個表的話,可以看出來差距非常的大。

 

-----------------------------------------------------------------------------------------------割掉-----------------------------------------------------------------------------------------------

看來SQL得重新好好的溫習溫習,真是糊塗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM