3

我有两个 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%'
; 

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

4

1 回答 1

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%';

您阅读了UNIONwhich 做了类似的事情,但它过滤掉了重复的结果。所以它类似于UNION ALL,但不一样。

但由于您实际上是从同一个表中查询完全相同的列,您只需将两个条件放在where子句中并使用or. 这样,您将获得符合任一条件的所有记录。

SELECT 
  labels.langjrd,labels.id,labels.lcphrase 
FROM 
  labels 
WHERE 
  labels.langjrd LIKE 'FRE%' OR
  labels.langjrd LIKE 'ENG%';
于 2013-07-24T12:56:38.127 回答