我有一個使用左連接,像這樣的查詢:MySQL匹配...反對vs. nulllls?
SELECT a.id, a.username, a.date_created, a.contact_id, a.role_id,
c.first_name, c.middle_initial, c.last_name, c.email, r.role
FROM accounts AS a
LEFT JOIN contacts AS c ON a.contact_id = c.id
LEFT JOIN roles AS r ON a.role_id = r.id
WHERE (MATCH (a.username, c.first_name, c.middle_initial, c.last_name, c.email)
AGAINST ('searchTerm*' IN BOOLEAN MODE))
問題是,有沒有對應的接觸(c.id)或角色(r.id)賬戶(a.id),所以當加入信息出現空(我猜)。
當發生這種情況時,無論發生什麼(在正常結果的頂部),我都會得到與搜索項不匹配的結果,它們都是由連接填充的空值。
我試過不同種類的連接,而且我在網上找過,但是我還沒有找到具體解決這個問題的東西。我認爲這會對其他人有用,因爲我可以看到其他領域出現這種情況。
所以,任何幫助將不勝感激,謝謝!
試過ISNULL(,)? –
Jrud
2010-10-26 21:05:36
我剛剛嘗試ISNULL(c.first_name,0)和我收到了#1582 - 調用本地函數'ISNULL'中的錯誤參數計數我正在使用MySQL 5.1 – Asher 2010-10-26 21:10:12
我認爲你想嘗試IFNULL :) – mna 2010-10-26 21:12:37