比较表格数据并按条件打印

时间:2018-03-07 07:25:29

标签: mysql

我有一个具有以下结构的表:

ID int(11) NO PRI NULL 
NAME varchar(20) NO NULL 
SALARY decimal(18,2) YES NULL 

在这里,我想打印一个人的工资低于另一个人的所有名字。

例如

15 adam 1500
16 bob 2000
17 marley 5000

将显示结果:

adam bob
adam Marley
bob Marley

我可以在MySQL中运行double for循环,但是,它失败了,因为它没有得到左侧较低薪水的名称。

这是我的尝试:

select
        t1.name, " ", 
        t2.name 
    from
        table t1 
    join
        table t2 
    where
        t1.Salary >  t2.Salary;

有人可以建议这里可能有什么问题吗?

1 个答案:

答案 0 :(得分:1)

它没有在左侧显示薪水较低的名称的原因是因为您使用了错误的比较运算符。请尝试使用<

<强>查询:

SELECT t1.name AS lower, t2.name AS higher
FROM `T` AS t1 
JOIN `T` AS t2 
WHERE t1.salary < t2.salary;

查看实时演示here

注意:

另请注意,在查询中使用" "没有意义。如果您要做的是连接名称,那么您可以使用以下内容取代上述SELECT子句:

SELECT CONCAT(t1.name, " ", t2.name) AS name

您可以找到有关CONCAT here

的更多信息