我有一个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
,但我看不出如何有效地做到这一点。
谢谢。