要在提要页面中显示项目,我使用以下 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。我发现的唯一解决方法是首先只选择项目表,然后在 PHP 中循环时选择 item_detail 表。我觉得这不是最佳做法,可能会影响性能。
请建议一个更好的选择项目的方法。
最佳答案
问题:
您正在加入 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
SQL Fiddle 中的示例结果
注意:如果您有多个具有相同 item_id
且 text
和 值不同的记录,此方法将无法按预期工作照片
列。
关于php - 为这些表选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31648428/