要显示Feed页面中的项目,请使用下面的JOIN QUERY。
SELECT i.item_id,i.time,id.text,id.photo FROM items i LEFT JOIN item_details id ON i.item_id=id.item_id
但是,它返回多行相同的项ID。我找到的唯一工作是首先选择items表,然后在PHP中循环时选择item_detail表。我觉得这不是最佳做法,可能影响表现。
请建议一种更好的方法来选择项目。
答案 0 :(得分:1)
<强>问题:强>
您正在加入item_details
,其中有3条记录具有相同的item_id
。因此,结果 会为item_id
提供更多记录。
<强>解决方案:强>
我认为这就是你所追求的:
SELECT i.item_id,i.time,MAX(id.text) as text,MAX(id.photo) as photo
FROM items i LEFT JOIN
item_details id ON i.item_id=id.item_id
GROUP BY i.item_id,i.time
示例结果:
item_id time text photo
---------------------------------------------------------------------
2 87213 (null) (null)
4 2029 another text row for item id 4 a photo for item id 4
中的示例结果
注意:如果您有多个具有相同item_id
的记录,text
和photo
列的值不同,则此方法无法按预期工作。