sql - 我需要合并来自 SQL 选择查询的两个结果

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

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

最佳答案

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

关于sql - 我需要合并来自 SQL 选择查询的两个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17834665/

相关文章:

java - 有没有办法使用 postgresql 执行学生 t 检验

sql - Oracle 12c子查询分解内联 View 现在有不好的计划吗?

scala - Spark 结构化流 - UNION 两个或多个流源

MySQL UNION 或创建中间表?

sql - 如何让 Redshift/Postgresql LAG 窗口函数有选择地排除记录?

MySQL 将行格式化为列

mysql 3 group by 和 sum

mysql - 从两个 mysql 表中检索数据并返回单个结果

mysql - 是否可以将此业务逻辑放在 SQL 查询中?

MySql UNION SELECT 缺少字段