gpt4 book ai didi

mysql 用 if 条件连接表?

转载 作者:行者123 更新时间:2023-11-29 08:25:50 27 4
gpt4 key购买 nike

我正在尝试连接 5 个看起来有点像这样的表

帖子表

ID |产品 |用户我们 |制作 ID |经销商 ID |待定 | .... 30 个其他栏目 ... |

制作表格

ID |制作|

状态表

前缀|状态|城市 | zip

成员表

ID |名称 |电子邮件 |密码 | zip |经销商 ID

经销商表

ID |经销商名称 |城市 |状态| zip |地址 |电话

MySql 查询如下所示

    SELECT *
FROM `post` AS p
JOIN (`make` AS m, `state` AS s, `members` AS mb, `dealer` AS d)
ON (p.Make = m.id AND p.state = s.id AND p.id = mb.id AND mb.dealer-id = d.id)
WHERE p.pending != '1'

问题是此查询仅返回 member.dealer-id = Dealer.id 的行,如果我使用 LEFT JOIN,它会返回所有正确的行,但表中的所有列都会、状态、成员(member)和经销商将为NULL。这不应该是因为我需要这些表中的信息。

如果 member.dealer-id > 0,我是否只能加入 dealer 表?我可以在经销商表中添加一行 id 为 0 的行,但必须有更好的方法。

最佳答案

以正常方式对联接进行编码后,仅在 dealer 表上使用 LEFT JOIN:

SELECT *
FROM post AS p
JOIN make AS m ON p.Make = m.id
JOIN state AS s ON p.state = s.id
JOIN`members AS mb ON p.id = mb.id
LEFT JOIN dealer AS d ON mb.dealer_id = d.id
WHERE p.pending != '1'

仅当 member.dealer-id 大于零时,才会自动加入经销商。

顺便说一句,我以前从未见过像您这样编码的查询连接。如果有的话,我会假设它由于语法错误而不会执行 - 它看起来很奇怪。

关于mysql 用 if 条件连接表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961746/

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