如何使用单个查询从两个表中选择数据

时间:2012-09-26 15:22:39

标签: php mysql join

我一直试图了解如何使用单个查询从我的两个表中选择数据。如果有人能提出比单一查询更好的方式,我全都听见了!以前我会使用两个我可以轻松工作的查询来做到这一点虽然我会让我相信单个查询会更好,因此会尝试学习。

我的一张桌子以缩减形式类似于此。将此表称为“成员”:

ID  |  firstName  |   lastName  | networkingID

另一张我称之为“网络”的表格:

ID  |  websiteURL | facebookURL | twitterURL


我要做的是在表member上运行查询,如:

SELECT * FROM `member` WHERE `ID`=2

返回表member中的数据。

但是我也希望从表networking返回相关值。表networkingID中的列memberID中行的networking

我将如何做到这一点?

到目前为止,我已经尝试使用我通过Google找到的所有JOIN,但我无法使其正常工作。我最好的结果是LEFT JOIN所有列都存在,但网络表的结果都是NULL

5 个答案:

答案 0 :(得分:3)

SELECT * FROM member
LEFT JOIN networking
ON member.networkingID=networking.ID
WHERE member.ID=2

答案 1 :(得分:0)

简单连接,在公共ID之间。内连接将确保网络表中有记录,否则将不显示该成员。如果您想要所有LEFT JOIN行,无论他们是否在member表格中加入任何内容

,您都可以将其替换为network
 SELECT * FROM member m 
      INNER JOIN networking n 
 ON (m.networkingID = n.id) 
 WHERE m.id = 2;

答案 2 :(得分:0)

select
   *
from
   member as m
   left outer join
      networking as n
   on
      m.networkingID=n.ID

答案 3 :(得分:0)

加入应该有效。

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

答案 4 :(得分:0)

select * from member a, networking b 
where a.networkingID=b.ID and a.ID = 2