2012-09-05 31 views
1

只返回4行我有一個表:MySQL的:與同CAT_ID

items 
item_id|cat_id|name 
1  |2  |item_1 
2  |2  |item_2 
3  |1  |item_3 
4  |3  |item_4 
5  |2  |item_5 
6  |3  |item_6 

我寫此查詢:

SELECT * FROM項目WHERE CAT_ID IN(2,3);

我怎樣才能返回至多/至少 4行兩個CAT_ID的(導致至多/至少 8行)?

+0

爲什麼「貓」表與這個問題有關?該查詢只使用'items'。 – Barmar

+0

事後看來,我認爲顯示貓表是多餘的。希望它不會混淆。 – user1163278

+0

關於如何解決這個問題的任何想法? Al以前的建議沒有成功.. – user1163278

回答

3

m4573r接近:這是正確的SQL:

(SELECT * FROM items WHERE cat_id = 2 LIMIT 4) 
UNION ALL 
(SELECT * FROM items WHERE cat_id = 3 LIMIT 4); 

如果沒有括號,在結束時限制施加到工會,而不是子查詢。

+0

哈哈,我現在覺得很蠢:)我會編輯 – m4573r

3
(SELECT * FROM items WHERE cat_id = 2 LIMIT 4) 
UNION ALL 
(SELECT * FROM items WHERE cat_id = 3 LIMIT 4); 
+0

你誤會了我。我需要2和3的最大4個結果。這只是返回4結果 – user1163278

+0

我的不好,我會編輯。 – m4573r

+0

謝謝。如果有很多cat_id,這個查詢會慢嗎? – user1163278

-1

更簡單:

SELECT * FROM items WHERE cat_id = (2,3) LIMIT 4; 

完成

+0

我剛剛得到了一個錯誤:錯誤代碼:1241.操作數應該包含1列(s ) – user1163278

+0

向我展示更多的代碼,也許你沒有用正確的語法引入SQL。 –

+0

我寫完全和你一樣。 – user1163278