我工作的PHP/MySQL的基於「博客文章」系統,該職位可以有多個類別,我有2個表:MySQL的聯接與WHERE子句,不返回所有結果
帖子:
PostId Content
0 POST0
1 POST1
2 POST2
3 POST3
post_categories:
PostId CategoryId
0 1
0 2
0 3
1 2
1 4
2 3
3 1
(我省略了一些列)
我也有一個第三表「類別」中,描述了類別,但是這並不releva NT。
給人一種類別編號(如:2),我想返回一個包含所有職位,類別ID,下面的形式:
PostId Contents CategoriesIds
0 POST0 1, 2, 3
1 POST1 2, 4
(兩個後0和後1必須返回,它們都具有類別編號2)
的問題是,使用此查詢:返回
SELECT p.PostId, p.Content, GROUP_CONCAT(pc.CategoryId SEPARATOR ',') AS CategoriesIds
FROM posts AS p
LEFT JOIN post_categories AS pc ON p.PostId=pc.PostId
WHERE pc.CategoryId = 2 GROUP BY p.PostId
兩個職位但不是所有的類別ID,
PostId Content CategoriesIds
0 POST0 2
1 POST1 2
我想返回具有CategoryId 2的所有帖子,但仍然返回所有這些帖子的CategoriesIds。
有沒有可能這樣做?
感謝
我認爲這也將工作:HTTP: //sqlfiddle.com/#!2/46036/11 – Jamie
非常感謝,這工作,我不習慣使用'嵌套'查詢:P –