尝试从具有相同结构的多个sql表中搜索数字,这是我正在尝试做的select a, b, c from table_a, table_b, table_c where a = '12344'
结果可能来自一个表中的任何一个。
它给我们这个错误
不明确的列名
答案 0 :(得分:1)
在您的查询上:
对于具有相同列名的多个表,您需要指定表名和列名。您需要将其指定为table_a.a = '12344'
根据您的要求: 您应该一次搜索1个表并使用UNION ALL
SELECT a, b, c, from table_a where a = '12344'
union all
SELECT a, b, c, from table_b where a = '12344'
union all
SELECT a, b, c, from table_c where a = '12344'
答案 1 :(得分:0)
问题是您在select
中有三个表,并且您没有限定使用的列。我想你正在寻找这个
使用UNION ALL
select a from table_a where a = '12344'
UNION ALL
select b from table_b where a = '12344'
UNION ALL
select c from table_c where a = '12344'
或使用join
SELECT *
FROM table_a ta
CROSS JOIN table_b tb
CROSS JOIN table_c tc
WHERE '12344' IN ( ta.a, tb.a, tc.a )
注意:两个查询都会以不同的格式设置结果。还要记住,你正在做三张桌子的笛卡尔积。