首页 > 解决方案 > MYSQL 连接不使用主键

问题描述

我想知道 MYSQL 是否可以执行以下操作:

 **Table 1**
    |name|salary|seniorLevel|
    |Angela|3500||
    |Cindy|4500||
    |Sam|||
    |Paul|8000||


    **Table2**
    |seniorLevel|salary_start|salary_end|
    |A|3001|4000|
    |B|4001|5000|
    |C|5001|6000|

Desired output:
    |Name|salary|seniorLevel|
    |Angela|3500|A|
    |Cindy|4500|B|
    |Sam|||
    |Paul|8000||

我设法使用下面的 SQL 获得了前两行所需的输出(Angela 和 Cindy),但是即使它们不符合标准,我如何才能将我的代码扭曲为输出全套(包括 Sam 和 Paul)。

select Table1.name, Table1.salary, Table2.seniorLevel from Table1, Table2 where Table1.salary <= Table2.end and Table1.salary >= Table2.start; 

谢谢你的帮助。:)

标签: mysqlsqljoin

解决方案


我想你想要一个left join

select t1.*, t2.seniorLevel
from table1 t1 left join
     table2 t2
     on t1.salary >= t2.salary_start and t1.salary <= t2.salary_end;

推荐阅读