数据库1 2 3 4
以1的某个字段a判断,是b则select查询获取2中字段C,是c则查询获取3中字段d,是d则查询获取4中字段e,这个该怎么写,谢谢
SELECT
CASE a
WHEN 'b' THEN (
SELECT C
FROM database2.table2
WHERE condition
)
WHEN 'c' THEN (
SELECT d
FROM database3.table3
WHERE condition
)
WHEN 'd' THEN (
SELECT e
FROM database4.table4
WHERE condition
)
ELSE NULL
END AS result
FROM database1.table1
WHERE condition;
你这到底是4个库还是4个表
表1里就一行数据吗
假如有4张表abcd
select case
when a.aa='1' then b.bb
when a.aa='2' then c.cc
when a.aa='3' then d.dd
else '' as aa
from a
我可以提供以下SQL语句实现多表连接查询:
SELECT
CASE
WHEN t1.a = 'b' THEN t2.c
WHEN t1.a = 'c' THEN t3.d
WHEN t1.a = 'd' THEN t4.e
ELSE NULL END AS result
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id
LEFT JOIN table3 t3 ON t1.id = t3.id
LEFT JOIN table4 t4 ON t1.id = t4.id
其中,假设table1有一个字段叫做a,其它表中需要查询的字段名为c、d、e,且关联字段均为id。当t1表中a字段的值为b时,查询t2表中c字段的值,当a字段为c时,查询t3表中d字段的值,当a字段为d时,查询t4表中e字段的值。
以上SQL语句实现了多表连接查询,并且根据字段a的不同取值,查询不同的其它表中的字段。
注意事项: 1. 在LEFT JOIN时,要保证关联字段的数据类型相同; 2. SQL语句大小写敏感,表名、字段名等要与实际数据相符; 3. 对于类似的查询操作,应该建立合适的索引,以提高查询效率。