gpt4 book ai didi

如果第二个表中不存在行,MySql 从两个表中选择

转载 作者:行者123 更新时间:2023-11-30 22:04:37 28 4
gpt4 key购买 nike

我有两个表 table 1 和 table 2 table 2 包含 table 1 的 id

我想显示表 1 的所有字段,表 2 中的 2 列具有表 1 的 ID,如果表 2 没有表 1 的记录(没有表 1 的 ID),则结果将是表 1 的内容,其中 2 列将为空这是我使用的查询

select *
from tbl_marketing
right join tbl_phonecall on tbl_marketing.db_maid=tbl_phonecall.db_mid
where tbl_marketing.db_status!='Deal Done' and tbl_marketing.db_status!='Refused' and tbl_marketing.db_status!='Not Interested' order by tbl_marketing.db_date desc,tbl_phonecall.db_nextdate desc

但是这个查询没有给我想要的结果

如果我没有表 2 中表 1 中某一行的信息,则该行将不会出现在我的结果中

我该如何解决这个问题?!

2017-02-10 12:46:01 vv  ddd  Answered 2017-01-01 00:00:00   2017-02-24 00:00:00

这是第一个表中的数据:

2017-02-10 12:46:01 vv  ddd  Answered

这是来自第二个表的数据:

2017-01-01 00:00:00 2017-02-24 00:00:00

如果第二个表没有第一个表的数据,则第一个表中的数据不会出现,如果没有,则显示如上我想如果在第二个表中我没有第一个表的数据结果是这样的

2017-02-10 12:46:01 vv  ddd  Answered

最后两列为空tbl_marketing enter image description here

tbl_phonecall enter image description here

如果 tbl_phonecall 中有两行或更多,结果将是 tbl_marketing 中的所有字段而不会重复,如果我在 tbl_phonecall 中没有行用于 tbl_marketing 中的字段,它将显示 db_due 和 db_nextdate 的空值

最佳答案

使用左连接(我假设表 1 是 tbl_marketing)..

    SELECT       tbl_marketing.* , tbl_phonecall.db_due, tbl_phonecall.db_nextdate    FROM      tbl_marketing       LEFT JOIN (SELECT db_mid, max(db_due) db_due, max(db_nextdate) db_nextdate FROM tbl_phonecall group by db_mid) tbl_phonecall        ON tbl_marketing.db_maid = tbl_phonecall.db_mid     WHERE tbl_marketing.db_status != 'Deal Done'      AND tbl_marketing.db_status != 'Refused'      AND tbl_marketing.db_status != 'Not Interested'     ORDER BY tbl_marketing.db_date DESC,      tbl_phonecall.db_nextdate DESC;

关于如果第二个表中不存在行,MySql 从两个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172908/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com