MySQL中的SQL UNION两个表

时间:2012-06-11 11:59:18

标签: mysql union union-all

我有两个表结果联合:

table1:
name 
product

table2:
name
product

我能做到

select * from table1 where product LIKE 'p%' limit 3

还有:

select * from table2 where product LIKE 'p%' limit 3

但是当我结合时,结果是:

(select * from table1 where product LIKE 'p%' limit 3)
UNION ALL
(select * from table2 where product LIKE 'p%' limit 3)

我只获得第一个查询的结果。有什么问题?

2 个答案:

答案 0 :(得分:1)

查询似乎没有错。另外UNION ALL不会删除重复项,因此最好的猜测是您的第二个表没有WHERE条件的数据。

答案 1 :(得分:1)

请注意,UNION中的每个SELECT语句必须具有相同的列数。列还必须具有类似的数据类型。此外,每个SELECT语句中的列必须具有相同的顺序。

“UNION运算符默认情况下仅选择不同的值。要允许重复值,请使用UNION ALL。” 它确实对我有用:

SELECT column_name FROM table_name1 UNION ALL SELECT column_name FROM table_name2 。 希望,它会帮助你。 :)