2010-05-19 96 views
0

下面的查询工作得很好。它从两个MySQL表中提取字段,“评论”和“登录”。它为表“login”中的“username”等于变量“$ profile”的行执行此操作。它还为表中“commentid”中的“loginid”等于也从“登录”拉出的“loginid”的行提取字段。将第三个表添加到两个表的联接查询

我想从所谓的第三个表“提交”,它具有以下字段提取数据:

submissionid loginid title url displayurl datesubmitted 

我想从“提交”行拉场,其中“登录ID”等于“loginid”已经从另外两张表中拉出来,“login”和“comment”。

我该怎么做?

由于提前,

约翰

查询:

$sqlStrc = "SELECT l.username, l.loginid, c.loginid, c.commentid, c.submissionid, c.comment, c.datecommented 
       FROM comment AS c 
     INNER JOIN login AS l 
       ON c.loginid = l.loginid 
       WHERE l.username = '$profile' 
      ORDER BY c.datecommented DESC 
       LIMIT 10"; 
+1

我看你发现很多我的回答对您有重复的问题非常有用,但没有给予好评! http://stackoverflow.com/questions/2853318/join-with-three-tables – webbiedave 2010-05-19 20:05:47

+0

嗨戴夫...我感谢你的帮助,但它没有让我对我的最后一个问题非常遥远。我在这里发布的是我在发布最后一个问题之前使用的内容。 – John 2010-05-19 20:10:27

回答

3
SELECT l.username,l.loginid,c.loginid,c.commentid,c.submissionid,c.comment, 
c.datecommented,s.submissionid,s.loginid,s.title,s.url,s.displayurl,s.datesubmitted 

FROM comment AS c 

INNER JOIN login AS l ON c.loginid = l.loginid 
INNER JOIN submission AS s ON s.loginid = l.loginid 

WHERE l.username = '$profile' 

ORDER BY c.datecommented DESC 

LIMIT 10