加入三张表
问题描述:
对于下面的连接查询,我想从第三个MySQL表中获取一些名为“comment”的数据。每个s.title都有一个对应的s.submissionid。 “submitid”字段也在表格“评论”中。加入三张表
对于表格“comment”中的每个“submissionid”,我想要计算一个名为“commentid”的字段。
我该怎么做?
由于提前,
约翰
$sqlStr = "SELECT s.loginid, s.title, s.url, s.displayurl, l.username
FROM submission AS s,
login AS l
WHERE s.loginid = l.loginid
ORDER BY s.datesubmitted DESC
LIMIT 10";
答
是的,你可以这样做,但你要的问题是,如果登录有多个意见,并提交有多个评论,您的结果可能很难解释。
换一种方式,如果你有10个登录,每个人都有5份意见书,并每次提交有8条评论你要拉回来10×5×8 = 400行。现在你可以处理,但数据可能失控。
话虽:
SELECT s.loginid, s.title, s.url, s.displayurl, l.username, c.commentid
FROM submission s
JOIN login l ON s.loginid = l.loginid
LEFT JOIN comments c ON s.submissionid = c.submissionid
ORDER BY s.datesubmissed DESC
LIMIT 10
注:我已经改变了上述使用ANSI SQL连接语法。你应该赞成这一点。通常阅读起来要容易得多。
是不是正是你在这里问同样的问题:http://stackoverflow.com/questions/2496066/using-a-join-with-three-tables-when-a-field-might-be -空值 ? – VolkerK 2010-03-24 00:41:47
我很难得到这个工作。 – John 2010-03-24 00:50:41