gpt4 book ai didi

mysql - 有条件地选择连接表

转载 作者:行者123 更新时间:2023-11-29 07:35:53 25 4
gpt4 key购买 nike

我有三个表 A、F、R

Table A
-----
id | type | user_id


Table F
-----
id | Title


Table R
-----
id | Title

在 A 中有一个列 Type,它只能包含值 fr

现在我想有条件地选择并联接三个表,如果 A 中的列值 Typer,则联接从 A 到 R 的行,并联接从 A 到 F 的行如果 A 中的列 Typef

我试过了

SELECT a.*,f.* FROM  `A` a
INNER JOIN F ON F.type= a.type AND a.type = 'f'
INNER JOIN R ON F.type= a.type AND a.type = 'r'

我得到的是空行

最佳答案

您已经很接近了,但需要更改为 LEFT-JOIN 并使用合并...如果第一个值为空,它会从另一个表中获取...但是您的示例结构并不真正匹配您的情况未在“F”和“R”表中显示“TYPE”列。

SELECT 
a.*,
COALESCE( f.title, r.title ) as WhichTitle
FROM
`A` a
LEFT JOIN F
ON a.type = F.type
LEFT JOIN R
ON a.type = R.type
where
a.type = 'f'
or a.type = 'r'

但是,也就是说,如果您还可以提供一些示例数据来显示每个表的上下文以及您期望的内容,将会有所帮助。

关于mysql - 有条件地选择连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30851378/

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