使用MySQL JOINS从两个表中检索记录

时间:2018-06-04 11:55:15

标签: mysql phpmyadmin mysql-workbench

我有两个表tbl1和tbl2,其中数据如下所示,我想通过组合两个表来获取数据。

tbl1数据:

SLNO    CALENDAR_RNO    PLNDHRS     STATUS_FLAG
30      64              0.78        0
30      54              0.78        1
30      55              0.78        2
30      70              0.29        0

tbl2数据:

SLNO    CALENDAR_RNO    PLNDHRS
30      53              0.20
30      54              0.10
30      55              0.70
30      56              0.30
30      58              0.18
30      60              0.70
30      62              0.50
30      66              0.70
30      68              0.90

我想从tbl2获取所有记录并从tbl1获取STATUS_FLAG = 0的记录。

我尝试了这个查询,但我没有得到确切的

SELECT SLNO,CALENDAR_RNO,PLNDHRS 
FROM tbl1 INNER JOIN tbl2 ON tbl1.SLNO = tbl2.SLNO 
WHERE tbl2.STATUS_FLAG = 0;`

但是我需要下面给出的表格:

SLNO    CALENDAR_RNO    PLNDHRS
30      53              0.20
30      54              0.10
30      55              0.70
30      56              0.30
30      58              0.18
30      60              0.70
30      62              0.50
30      64              0.78
30      66              0.70
30      68              0.90
30      70              0.29

帮助我摆脱这个问题。我是MySQL语言的初学者。

1 个答案:

答案 0 :(得分:0)

看来你只想把这两个表合并在一起:

SELECT SLNO, CALENDAR_RNO, PLNDHRS 
FROM tbl1
WHERE STATUS_FLAG = 0

UNION

SELECT SLNO, CALENDAR_RNO, PLNDHRS 
FROM tbl2

该查询会选择tbl2的所有记录,并且联盟会记录tbl1 STATUS_FLAG = 0的记录。遗漏了重复。

Demo here