我尝试在mysql连接中建立一个条件'on子句'。mysql - 在mysql连接条件'on子句'
如果field1不为空,则应在'on claus' 中使用,但如果为空,则应使用field2。
SELECT * FROM table1
JOIN table2
IF (field1!='') THEN (
ON table1.field1 = table2.field1
AND table1.field3 = table2.field3
)
ELSE (
ON table1.field2 = table2.field2
AND table1.field3 = table2.field3
)
END IF
任何想法,如果这是可能的如何可以完成?
编辑: 我忘了解释这两个表都包含空字段,我试图防止mysql使用这些字段进行连接,因为这给出了非常多的连接,所以我的想法应该更像这样:
SELECT * FROM table1
JOIN table2
IF (table1.field1!='' AND table2.field1!='') THEN (
ON table1.field1 = table2.field1
AND table1.field3 = table2.field3
)
ELSE (
ON table1.field2 = table2.field2
AND table1.field3 = table2.field3
)
END IF
条件应放置在where子句中,是对的吗? – user3304232 2014-10-04 14:22:20
在选择。我编辑我的答案 – ericpap 2014-10-04 14:44:03
目前我在'on子句'中获得“未知列't2.Field1'” – user3304232 2014-10-04 15:05:57