mysqli中用于选择和加入的case用法
您好,我有一个简单的问题,从表中选择一些数据,然后根据表1中字段的值将表与另一个表连接起来 就像我有表1,表2和表3。 我想mysqli中用于选择和加入的case用法,mysql,sql,select,join,case,Mysql,Sql,Select,Join,Case,您好,我有一个简单的问题,从表中选择一些数据,然后根据表1中字段的值将表与另一个表连接起来 就像我有表1,表2和表3。 我想 选择字段1、字段2,然后检查字段3的值如果字段3的值=1,则从表2中选择字段1、字段2、字段3,并将表1与字段1和字段1上的表2连接,否则从表3中选择字段1、字段2、字段3,并将表1与字段1和字段1上的表2连接 我现在可以这样做了,但我不太喜欢,请帮我解决这个问题。我认为这可以通过使用联合呼叫来实现: SELECT t2.f1, t2.f2, t2.f3 FROM tab
选择字段1、字段2,然后检查字段3的值如果字段3的值=1,则从表2中选择字段1、字段2、字段3,并将表1与字段1和字段1上的表2连接,否则从表3中选择字段1、字段2、字段3,并将表1与字段1和字段1上的表2连接
我现在可以这样做了,但我不太喜欢,请帮我解决这个问题。我认为这可以通过使用
联合
呼叫来实现:
SELECT t2.f1, t2.f2, t2.f3
FROM table2 t2
INNER JOIN table1 t1
ON t1.f1 = t2.f1
WHERE t2.f3 = 1
UNION ALL
SELECT t3.f1, t3.f2, t3.f3
FROM table3 t3
INNER JOIN table1 t1
ON t1.f1 = t3.f1
试试这个:
SELECT t1.field1 AS t1field1,
t1.field2 AS t1field2,
CASE WHEN t1.field3 = 1 THEN t2.field1 ELSE t3.field1 END AS t2t3field1,
CASE WHEN t1.field3 = 1 THEN t2.field2 ELSE t3.field2 END AS t2t3field2,
CASE WHEN t1.field3 = 1 THEN t2.field3 ELSE t3.field3 END AS t2t3field3
FROM table1 t1
LEFT JOIN table2 t2 ON t1.field1 = t2.field1
LEFT JOIN table3 t3 ON t1.field1 = t3.field1;
到目前为止你都试了些什么?@Sonam你试过什么吗?这似乎更像是一个SQL问题,你能给我们举个例子吗?