[英]Inner join more than 2 tables in a single database
我想在一個數據庫中的一個選擇查詢中對3個以上的表進行內部聯接,所有這些表都將rm_id作為公共列,但是我想在一個sql查詢中顯示所有表的行,如果可能的話,我會聽到你提供一些代碼
select * from
bk_det inner join
bk_rep inner join
bk_sec inner join
mut_det inner join
rm_det inner join
soil_det
on
bk_det.rm_id = bk_rep.rm_id = bk_sec.rm_id = mut_det.rm_id = rm_det.rm_id = soil_det.rm_id
每個內部聯接都需要一個on子句。 例如
select * from a
inner join b on a.id = b.id
inner join c on b.id = c.id
您缺少每個聯接的ON
子句:
select *
from bk_det
inner join bk_rep
on bk_det.rm_id = bk_rep.rm_id
inner join bk_sec
on bk_rep.rm_id = bk_sec.rm_id
inner join mut_det
on bk_sec.rm_id = mut_det.rm_id
inner join rm_det
on mut_det.rm_id = rm_det.rm_id
inner join soil_det
on rm_det.rm_id = soil_det.rm_id
注意:由於我不知道您的表結構,因此您必須檢查聯接條件列名
如果您在學習連接語法方面需要幫助,這是對joins的直觀說明 。
由於您使用的是INNER JOIN
如果每個表中都存在rm_id
這將返回記錄。
您可能需要使用LEFT JOIN
:
select *
from bk_det
left join bk_rep
on bk_det.rm_id = bk_rep.rm_id
left join bk_sec
on bk_rep.rm_id = bk_sec.rm_id
left join mut_det
on bk_sec.rm_id = mut_det.rm_id
left join rm_det
on mut_det.rm_id = rm_det.rm_id
left join soil_det
on rm_det.rm_id = soil_det.rm_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.