我正在用標記過濾功能爲自己構建一個筆記記錄應用程序,但在嘗試使用標記抓取筆記時遇到問題。標記過濾器需要使用AND而不是IN,因爲它有助於更好地縮小我所尋找的範圍。有三個WHERE語句的MySQL LEFT JOIN問題
我的表可以這樣來配置:
+ notes note_id | note_title | note_uid
+ tags tag_id | tag_title
+ notes_tags nt_id | nt_note_id | nt_tag_id
的notes_tags表跟蹤的所有註釋標籤。
我不擔心有關標籤任何信息的返回,所以這裏是LEFT JOIN我使用目前只得到筆記與只有1個標籤的例子。
SELECT * FROM notes_tags LEFT JOIN注意事項note_id = nt_note_id WHERE note_uid IN(1)和nt_tag_id = 10
這個查詢運行完美,它抓住所有的音符與單個標籤 。然而,我在使用這樣的查詢問題 「見真章」 我的筆記:
SELECT * FROM notes_tags LEFT JOIN注意事項note_id = nt_note_id WHERE note_uid IN(1)和nt_tag_id = 10 和nt_tag_id = 11
我在做什麼錯誤的語法?
您試圖獲取標籤10和11中的註釋,我接受它?你不能只用一個AND來做,看看昨天這個類似的問題:http://stackoverflow.com/questions/2581067/mysql-experts-need-help-with-intersect/2581145#2581145 – 2010-04-06 21:09:14