使用mysql条件查询两个表
如果我将使用某些查询条件,如何获得特定查询,例如我有表:
表A:
column1
row1111
row2222
row3333
row4444
表B:
column1
rowAAAA
rowBBBB
rowCCCC
rowDDDD
是否可以提供条件来检查所选列为空或空。这是我的伪代码:
if any column in Table A query is null, I will use query to TableB
else query to TableA
任何建议或评论都是一个很大的帮助!,提前感谢。
答案 0 :(得分:0)
以下内容可能适合您:
SELECT `value` FROM (
SELECT 'a' as `source`, a.* from tableA a
UNION
SELECT 'b' as `source`, b.* from tableB b) j
WHERE `source` = IF((SELECT COUNT(*) FROM tableA
WHERE `value` IS null)>0,'b','a');
我们通过UNION
合并完整数据集,确定每行的来源。然后在WHERE
子句中,我们从一个表或另一个表中选择,具体取决于在tableA中是否检测到NULL
个值。
答案 1 :(得分:0)
有可能得到你正在尝试的东西。
但是从two different tables
执行此操作会降低速度。
将both columns
合并到同一个表格中,您可以通过使用以下查询获得结果
select coalesce(column1,column2) from table
答案 2 :(得分:0)
您可以使用UNION
和NOT EXISTS
来完成此操作
如果第一个查询从第一个查询返回NULL ELSE返回结果,则从第二个查询返回值
SELECT
colA
FROM table_A
UNION
SELECT colB
FROM table_b
WHERE NOT EXISTS
(
SELECT colA from table_a
)