gpt4 book ai didi

mysql - 在 SQL 中使用 IF/CASE 条件

转载 作者:可可西里 更新时间:2023-11-01 08:05:38 26 4
gpt4 key购买 nike

我有一个关于如何在 SQL 中使用 IF 语句的问题,所以我有 3 个表

  • 用户
  • 力学
  • 交流

各表的字段如下

 user        mechanics      exchanges
------ ---------- ---------
name name id_user
id_user id_mecha id_mecha
message

我想使用类似下面的条件,我将选择 usermechanic 的名称及其相应的 message 如果他们的 idexchanges 为他们每个人(usermechanic)拥有的那个相匹配

SELECT CASE  
WHEN mechanics.id_mecha = exchanges.id_mecha
THEN mechanics.name, exchanges.message
WHEN users.id_user = exchanges.id_user
THEN users.name, exchanges.message
FROM users
JOIN mechanics
JOIN exchanges

最佳答案

双重 JOIN 将在机械师和用户之间产生一个完整的交叉产品。这可能不是您想要的。您应该对每个表使用一个连接,然后将它们与 UNION 组合。

SELECT m.name, e.message
FROM mechanics AS m
JOIN exchanges AS e ON m.id_mecha = e.id_mecha

UNION

SELECT u.name, e.message
FROM users AS u
JOIN exchanges AS e ON m.id_user = e.id_user

关于mysql - 在 SQL 中使用 IF/CASE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28596658/

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