gpt4 book ai didi

mysql - 根据多个表中的条件联接

转载 作者:行者123 更新时间:2023-11-29 05:38:58 26 4
gpt4 key购买 nike

三个表,列如下:

A:   A_id, B_id, C_id, flag, ...
B: B_id, date, ...
C: C_id, date

如果 A.flag 为 NULL,那么我需要所有来自 A 的行在 B_id 上与 B 连接,并且过去有 B.date。

如果 A.flag 不为 NULL,那么我需要所有来自 A 的行在 B_id 上与 B 连接,过去有 C.date,C 在 C_id 上连接。

一次尝试:

SELECT *
FROM A, B, C
WHERE A.A_id = B.B_id
AND ((A.flag IS NULL AND (NOW() > B.date) OR
(A.flag IS NOT NULL AND (NOW() > C.date) AND C.C_id = A.C_id))

但我需要在 A.flag is NULL 行中添加一些条件来阻止它与 C 中的每一行连接。这是我无法解决的问题。

或者有更简单的方法吗?

最佳答案

你可以试试

SELECT a.*, b.* 
FROM a INNER JOIN b ON a.B_id = b.B_id
WHERE a.flag IS NULL AND b.date < NOW()
UNION
SELECT a.*, b.*
FROM a INNER JOIN b ON a.B_id = b.B_id
INNER JOIN c ON a.C_id = c.C_id
WHERE a.flag IS NOT NULL AND c.date < NOW()

关于mysql - 根据多个表中的条件联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309390/

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