0

我有两个要合并的表结果:

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)

我只得到第一个查询的结果。怎么了?

4

2 回答 2

1

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

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

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

于 2012-06-11T12:12:08.037 回答
1

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

于 2012-06-11T12:05:17.913 回答