我有一个表category
将类别编号链接到类别名称。
例如,1-水果,2-蔬菜,3-昆虫,4-城市等。。。
我有另一个item
表,其中的项正好属于一个类别。每个项目都有一个唯一的id、名称及其类别。例如,314南瓜-(类别)1
简而言之:
category
-------
c_id (int)
c_name (varchar)
item
-------
i_id (int)
i_name (varchar)
i_cat (int)
问题是并非所有类别都有项。我已使用以下方法按类别订购项目:
$STH = $DBH->prepare("SELECT * FROM item ORDER BY i_cat");
这被构建到一个表中,当cat(egory)改变时提取标题。当然,没有项目的类别不会被选取。
我想要的是一个包含所有类别(甚至那些没有实际项目)的表,并且在每个类别下面列出正确的项目。
我可以想出一些繁琐的方法来做我想做的事,但必须有一个简洁的解决办法。如何将两个表中的数据合并到一个调用中,以便每个类别和每个项都存在?我认为它涉及到
inner join
的使用,但我看不出如何有效地使用它。谢谢。
最佳答案
尝试以下查询,它将从category
表中获取所有类别,并从item
表中获取相应项:
SELECT *
FROM category c
LEFT JOIN item i
ON c.c_id = i.i_cat
ORDER BY i_cat
关于php - MySQL加入-将类别表与数据表结合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10069309/