我可以在MySQL中执行可选的LEFT JOIN吗?

时间:2012-06-21 11:10:19

标签: mysql stored-procedures left-join

我正在从数据库表中选择产品。目前查询是从Coldfusion启动的,我在这里有一个“可选LEFT JOIN”,如下所示:

SELECT a.products
FROM artikelstammdaten a
  <cfif modul_aktiv("preorder", my_module) IS "true">
     LEFT JOIN...
  </cfif>
WHERE ...

问题:
是否可以在MySQL中执行可选的LEFT JOIN。我在想这样的事情:

SELECT a.products
FROM artikelstammdaten a
    AND ( 
        ((param_preorder = 'false') "(1=2)" )
          OR LEFT JOIN ...  
        )
WHERE ...

1 个答案:

答案 0 :(得分:4)

嗯,你可以这样做:

SELECT a.products
FROM artikelstammdaten a
LEFT JOIN [another_table] ON [your parameterized condition] AND [the real join condition]
(...)

LEFT JOIN将完成,无论您的条件是什么,但如果它是假的,它将不会带回任何记录。

但你肯定无法模仿纯SQL中的cfif:)