MYSQL不使用主键连接

标签 mysql sql join

不知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; 

感谢您的帮助。 :)

最佳答案

我想你想要一个左连接:

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

关于MYSQL不使用主键连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50848369/

相关文章:

java - 格式化 Mysql JSON 与在后端重新格式化为 JSON

Windows 10 上的 MySQL WorkBench 6.3 CE 配置文件位置

MySQL sql语法错误LIKE语句和条件

variables - 将文本 append 到 Twig 中的变量

php - 对于从右向左阅读的字母表,网站如何从右向左显示文本?

mysql #1064 FROM 括号错误

mysql - 将每一对行合并到一个 MYSQL 中

php - 在定义时调用未定义的函数 query()

java - 如何改进两个 Json 结果之间的联接?

php - MySQL Join 和 Echo 结果