【使用場景】:
現有A\B\C 三張表,現在要查詢并展示A表和C表中的某些字段,但是A、C兩表沒有相同字段,無法關聯,此時有B表恰好有兩個字段,一個字段和A表一個字段相同,一個字段和C表一個字段相同,我們稱B表為“中間表”,是以通過B表把A、C表關聯起來
方法一(推薦):
SELECT A1,A2,C1,C2 --展示A表中的A1\A2字段和C表中的C1\C2
FROM B --中間表
INNER JOIN A ON A.A1 = B.B1 --A表中的與B表中相同的字段
INNER JOIN C ON C.C1 = B.B1 --C表中的與B表中相同的字段
where xxxxx ---條件你自己按照需求來加,沒有條件就不寫where了
方法二(有點笨,但也好用,寫子查詢)
原理:兩兩關聯,在關聯第三張表
select C.C1,C.C2,D.* --列印出C表的C1,C2字段和D表中的select 後面的字段,即A1,A2,A3,B1,B2,B3
from C, (select A1,A2,A3,B1,B2,B3 from A,B ) D --先把A,B兩張表關聯起來,命名為D表,再與C表關聯,注意,A,B表關聯時一定要記得列印出B表中與C表相同的字段
where xxxxx ---條件你自己按照需求來加,沒有條件就不寫where了
口徑了解記憶方法:
1、首選找出“中間表”
2、select * from :固定格式照寫,select後面跟你要列印的表的字段,from後面跟中間表
3、接着寫兩個 INNER JOIN A ON ,"A"替換成另外兩張表,兩個ON 後跟中間表與剛替換A時用的表,相同字段關聯起來。
4、有判斷條件的加where,後跟判斷條件,沒有就不寫,至此完畢。