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

标签 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 语言的初学者。

最佳答案

看来您只是想合并两个表:

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

UNION

SELECT SLNO, CALENDAR_RNO, PLNDHRS 
FROM tbl2

该查询选择 tbl2 的所有记录,并将它们与具有 STATUS_FLAG = 0tbl1 记录合并。重复项将被排除。

Demo here

关于mysql - 使用 MySQL JOINS 从两个表中检索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50680034/

相关文章:

php - 为什么我的 PDO 对象返回对象(PDO)[2]

MySQL - 由于忘记密码而重新安装,但无法连接到服务器(Mac OS)

php - 如何配置 phpMyAdmin 以仅为 root 用户显示特定数据库

mysql - 使用链接表和源表mysql创建子查询

php - 如何获取要显示的四行的首尾行号

mysql - 随着时间的推移在表中使用 MySQL 更改值

php - 使用 phpmyadmin 进行数据库传输 - 编码问题

mysql - 用户似乎总是在线?

mysql - 如何更改我的 sql 以在 mysql 中的 MySql 存储过程中循环?

mysql - 基于 timediff 和包含字符串的列的 SQL 计数