簡體   English   中英

如何使用單個查詢從兩個表中選擇數據

[英]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的列networkingIDnetworking中行的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM