mysql - 如何在多个表中选择唯一的折扣

标签 mysql sql

我有 5 张 table 。我想使用 MYSQL 查找所有 5 个表的唯一折扣值。

表格的形式是:

table1(userid,discount)  
table2(userid,discount)    
table3(userid,discount)    
table4(userid,discount)    
table5(userid,discount)

最佳答案

您可以使用UNION来实现这一点。

UNION 的默认行为是从结果中删除重复行。可选的 DISTINCT 关键字除了默认值外没有任何作用,因为它还指定重复行删除。

使用可选的 ALL 关键字,不会发生重复行删除,并且结果包括所有 SELECT 语句中的所有匹配行。

查询

select discount from table1
union
select discount from table2
union
select discount from table3
union
select discount from table4
union
select discount from table5;

如果您想对上述 sql 查询的结果进行排序,您可以使用如下所示的 ORDER BY

查询

select t.discount from
(
    select discount from table1
    union
    select discount from table2
    union
    select discount from table3
    union
    select discount from table4
    union
    select discount from table5
)t
order by t.discount;

根据您的要求按降序或升序排序。

关于mysql - 如何在多个表中选择唯一的折扣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33471418/

相关文章:

php - 不同行的MySQL总和

php - MySQL、UTF-8 和 Emoji 字符

mysql - 如果为空则从 MySQL 检索随机数据查找下一个

sql - 根据 JSONB 列中的数组有选择地提取键和值

mysql - 两个表通过 WHERE 子句条件关联(如果存在或不存在)

MySQL:条件连接不显示用于计算纬度/经度之间距离的所有数据

sql - 如何使用 Oracle 的 dbms_standard 包

mysql - 使用一个查询的结果作为变量输入到 MySQL 中的其他查询

mysql - 使用 LEFT JOIN 的缓慢 MySQL 查询

php - 注册过程如何在社交引擎中运作?如何/什么以及何时调用代码