我需要结合SQL select查询的两个结果

时间:2013-07-24 12:55:12

标签: sql union

我有两个Select查询,可以获得具有相同列名的两个表的结果。

SELECT 
    labels.langjrd,
    labels.id,
    labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'FRE%'
;

SELECT
    labels.langjrd,
    labels.id,
    labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'ENG%'
; 

当我运行查询时,我想将所有结果放入一个表中。我读到了关于联合查询但是当我尝试它时,它没有用。我不想覆盖所有重复数据,我只想将第二个选择结果添加到第一个选择结果的底部。

1 个答案:

答案 0 :(得分:11)

使用UNION ALL,您可以合并两个查询的结果,如下所示:

SELECT 
  labels.langjrd,labels.id,labels.lcphrase 
FROM 
  labels 
WHERE 
  labels.langjrd LIKE  'FRE%'
UNION ALL
SELECT 
  labels.langjrd,labels.id,labels.lcphrase 
FROM 
  labels 
WHERE 
   labels.langjrd LIKE 'ENG%';

您了解UNION执行类似操作的内容,但会过滤掉重复的结果。所以它与UNION ALL类似,但不一样。

但是,由于您实际上是在查询同一个表中的完全相同的列,因此您可以将这两个条件放在where子句中并使用or拆分它们。这样,您将获得符合任一条件的所有记录。

SELECT 
  labels.langjrd,labels.id,labels.lcphrase 
FROM 
  labels 
WHERE 
  labels.langjrd LIKE 'FRE%' OR
  labels.langjrd LIKE 'ENG%';