我在查詢時遇到了問題。我試過子查詢,不同的連接和group_concat(),但它們要麼不工作要麼很痛苦。這可能有點複雜的解釋,但這裏的問題:mysql select - 子查詢,group_concat()不工作/太慢
我有一個表「項目」(約2000產品)。我有一個表「標籤」(其中包含大約2000個不同的產品標籤)。我有一個「tagassign」表(將標籤連接到項目,大約有200000條記錄)。
我使用標籤來定義產品的特徵,例如顏色,兼容性,產品是否特價等。現在,如果我希望能夠顯示分配有特定標籤的產品他們,我使用一個簡單的查詢,如:
select * from item, tagassign
where item.itemid = tagassign.itemid
and tagassign.tagid = "specialoffer"
問題是,我可能想看到有幾個標籤的項目。例如,我可能只想看到與Apple iPhone兼容的黑色手機外殼,並且是新的。所以我基本上希望看到項目表中的所有記錄都有「黑色」和「大小寫」,「iphone」和「新」的標籤。唯一可以實現這個功能的方法是創建4個別名(select * from item,tagassign,tagassign as t1,tagassign as t2,tagassign as t3等)。在某些情況下,我可能會尋找10或20個不同的標籤,並且有很多記錄,查詢速度非常慢。
我知道我錯過了一些明顯的東西。有任何想法嗎? 謝謝!
向我們展示您的'EXPLAIN SELECT' - 索引? – Piskvor 2010-08-30 21:03:49