2014-02-07 100 views
2

這是我有,它不工作。它試圖加入的大小,如果不是......它加入關於如果它等於'*'如果找不到任何東西,我該如何加入別的東西? MySQL

INNER JOIN tbl_items ON (
    tbl_items.size = COALESCE(tbl_model.size,'*') 
    AND tbl_items.type = COALESCE(tbl_model.type,'*') 
    AND tbl_items.category = COALESCE(tbl_model.category,'*') 
    AND tbl_items.service = tbl_testTypes.name 
) 
+0

你的表實際上包括文字' '*''?我只是確保你沒有試圖指定某種通配符。 –

+0

該列包含一個實際的'*'作爲文本 – user3282010

回答

0

要加入上無論是確切的列匹配或替代字符串,你可以使用一個像模式

(tbl_items.size = tbl_model.size) OR (tbl_model.size = '*') 

如果匹配,則執行OR的左側,否則使用右側。將每個組合在一個()之內。

所以,充實了整個JOIN

INNER JOIN tbl_items ON (
    ((tbl_items.size = tbl_model.size) OR tbl_model.size = '*') 
    AND ((tbl_items.type = tbl_model.type) OR tbl_model.type = '*') 
    AND ((tbl_items.category = tbl_model.category) OR tbl_model.category = '*') 
    AND (tbl_items.service = tbl_testTypes.name) 
) 
+0

@ user3282010不客氣,歡迎來到Stack Overflow。 –

相關問題