我想不出用这句话来表达的正确方法,也许如果我知道正确的短语,我可以正确使用谷歌,但到目前为止我还在苦苦挣扎。
我有两个表:类别,目录
在用户选择类别的页面上,我只想显示存在该类别的目录项的类别。
我想知道我是否可以通过加入来尝试
SELECT
wedding_directory_cats.id,
wedding_directory_cats.name,
wedding_directory.id AS d_id
FROM wedding_directory_cats
JOIN wedding_directory ON wedding_directory.category = wedding_directory_cats.id
但是这会返回每个目录项的类别,所以我不止一次地使用相同的类别。就像我写这篇文章一样,我开始认为我最终可以使用GROUP BY,但这仍然意味着它必须先将它们全部返回然后GROUP BY,这是效率低下还是有更好的方法来做这样的事情?任何答案赞赏
答案 0 :(得分:1)
试试这个:
SELECT wdc.id, wdc.name, wd.id AS d_id
FROM wedding_directory_cats wdc
INNER JOIN (SELECT id, category FROM wedding_directory GROUP BY category) wd ON wdc.id = wd.category ;
或强>
SELECT wdc.id, wdc.name, GROUP_CONCAT(wd.id) AS d_id
FROM wedding_directory_cats wdc
INNER JOIN wedding_directory wd ON wdc.id = wd.category
GROUP BY wd.category;