gpt4 book ai didi

mysql - 按列值动态表连接

转载 作者:行者123 更新时间:2023-11-29 04:44:46 25 4
gpt4 key购买 nike

我有三个表。

1) Animal

id | type | animal_id

2) Land_Animal

animal_id | name

3) Air_Animal

animal_id | name

type = (0 , land_Animal ; 1 , air_Animal )

我想检索为...

select * from Animal anm
if type = 0 then inner join Land_Animal land on anm.animal_id = land.animal_id
else inner join Air_Animal air on anm.animal_id = air.animal_id

上面的代码是我想要得到的示例。我只想根据主表的列值动态连接另一个表。如果 type = 0 ,我只想加入 Land_Animal 表,如果 type = 1 我只想加入 Air_Animal> 表。我怎样才能实现它?不建议编辑我的表结构。正如我所描述的“...以上代码是我遇到的问题的示例。

在此先致谢,非常感谢您的建议。

最佳答案

使用以下查询

SELECT * 
FROM animal a
INNER JOIN land_animal l
ON l.animal_id = a.animal_id
WHERE a. type = 0
UNION
SELECT *
FROM animal a
INNER JOIN air_animal ai
ON ai.animal_id = a.animal_id
WHERE a.type = 1

关于mysql - 按列值动态表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20943424/

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