我有以下的數據庫有2列:MySQL的:選擇具有類別ID的所有帖子= 2和3
posts id category id
1 2
2 1
1 3
3 3
3 2
4 5
我需要一個查詢時提取所有帖子ID的是在第二和第三類 這意思是:id爲帖子:1和3
我有以下的數據庫有2列:MySQL的:選擇具有類別ID的所有帖子= 2和3
posts id category id
1 2
2 1
1 3
3 3
3 2
4 5
我需要一個查詢時提取所有帖子ID的是在第二和第三類 這意思是:id爲帖子:1和3
選擇所有帖子ID的是在2類和3:
SELECT posts_id
FROM posts
WHERE categoryId IN (2, 3)
GROUP BY posts_id
HAVING COUNT(distinct categoryId) = 2;
來選擇關聯只只交的id,而不是任何其他:
SELECT posts_id
FROM posts
GROUP BY posts_id
HAVING SUM(categoryId <> 5) = 0;
非常感謝你..它爲我做了工作。 我還有一個問題,其.. ..它關於同一個表... 我如何才能選擇僅與類別ID 5相關的帖子ID,而不是其他任何其他ID。 –
查看我更新的答案。 –
在第一個查詢中,'SELECT posts_id,category_id'應該只是'SELECT posts_id' –
SELECT post_id, category_id
FROM posts
WHERE category_id IN (2, 3)
GROUP BY post_id
ORDER BY category_id;
非常感謝你..它爲我做了工作。 我還有一個問題,其.. ..它關於同一個表... 我如何才能選擇僅與類別ID 5相關的帖子ID,而不是其他任何其他ID。 –
SELECT post_id FROM posts WHERE category_id = 5; –
見有超過10種方法來實現這一點(性能測試)一個問題:** [如何篩選SQL導致了一對多,通過關係] (http://stackoverflow.com/questions/7364969/how-to-filter-sql-results-in-a-has-many-through-relation)** –