2014-02-07 103 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。 –

相关问题