[英]How to select data from two tables using a single query
我一直在思考如何使用單個查詢從我的兩個表中選擇數據。 如果有人能提出比單個查詢更好的方法,我會全神貫注! 以前我會使用兩個查詢來做到這一點,盡管我相信單個查詢會更好,但我可以輕松完成工作,因此我正在努力學習。
我的一張桌子以精簡的形式與此相似。 稱這個表為“成員”:
ID | firstName | lastName | networkingID
還有一張我稱之為“網絡”的表:
ID | websiteURL | facebookURL | twitterURL
我想要做的是對表member
運行查詢,例如:
SELECT * FROM `member` WHERE `ID`=2
它從表member
返回數據。
但是,我也希望從表networking
返回相關值。 表member
的列networkingID
是networking
中行的ID
。
我該怎么做呢?
到目前為止,我已經嘗試使用我能夠通過 Google 找到的所有 JOIN,但我無法使其工作。 我最好的結果是使用LEFT JOIN
,其中所有列都存在,但網絡表的結果都是NULL
。
SELECT * FROM member
LEFT JOIN networking
ON member.networkingID=networking.ID
WHERE member.ID=2
簡單連接,在一個公共 ID 之間。 內連接會確保網絡表中有記錄,否則不會顯示該成員。 如果您想要所有member
行,無論它們是否在network
表中加入任何內容,您都可以將其替換為LEFT JOIN
SELECT * FROM member m
INNER JOIN networking n
ON (m.networkingID = n.id)
WHERE m.id = 2;
select
*
from
member as m
left outer join
networking as n
on
m.networkingID=n.ID
JOIN 應該可以工作。
SELECT * FROM member, networking WHERE member.ID=2 AND member.networkingID=networking.ID
如果 member.ID=2 沒有網絡數據,這將返回一個空結果。 如果你想在這種情況下得到結果,你可以嘗試 LEFT JOIN。
SELECT * FROM member LEFT JOIN networking ON member.networkingID=networking.ID WHERE member.ID=2
select * from member a, networking b
where a.networkingID=b.ID and a.ID = 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.