MySQL返回相同数据的不同行

时间:2014-04-03 03:17:38

标签: php mysql sql

我正在尝试从评论表中获取数据,然后再次加入同一个表,但根据第一个表(评论)的ID找到不同的数据(喜欢),并从另一个联接表(描述)中找到相应的描述

我知道这可能难以想象,但也许有人会知道为什么来自第二个评论表的喜欢为不同的行返回相同的数据:

SELECT r.title, co.likes, d.description
FROM reviews r
INNER JOIN reviews co
INNER JOIN reviews_descriptions d
ON co.id = d.review_id
WHERE co.parent = 52
AND r.id = 52;

结果是两行,其中标题和喜欢具有相同的数据,而描述字段抓取不同的数据(正确的方式)。喜欢每行应该有不同的数据。

请帮助。

1 个答案:

答案 0 :(得分:0)

写这个的另一种选择,我相信这就是你要找的东西:

SELECT r.title, co.likes, d.description
FROM reviews r, reviews co, review_descriptions d
WHERE co.parent = r.id AND d.review_id = co.id AND r.id = 52;

由于您将co.parent与52匹配而r.id与52匹配,因此您应该在co.parent = r.id上进行连接,但是,您应该很少在同一个表上进行连接。我认为您的表格格式不正确或者您不需要首先进行连接,并且应该能够使用r.likes而不是co.likes。