gpt4 book ai didi

mysql - 在两个表之间如何选择一个特定值的id存在的表mysql(重复)

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:51 25 4
gpt4 key购买 nike

我之前在这里问过这个问题:Between two tables how does one SELECT the table where the id of a specific value exists mysql但是我觉得我措辞不够好。

我的“远足”数据库中有 2 个表,假设表 1 称为“森林”,表 2 称为“山”。两个表都有一个 FOREIGN KEY“Trip_id”,它是表“Trip”中的一个 PRIMARY KEY(或其他,这是一个虚构的示例),它是 AUTO_INCREMENT 。一次旅行可以是 Mountain 或 Forest,因此这 2 个表不共享任何 Trip_id。它们还各自具有不与其他表共享的属性。山脉具有“温度”属性,森林具有“大气”属性。我想要做的是提取“温度”或“大气”,具体取决于山脉或森林包含 Trip_id 值 74。

SELECT Temperature FROM Mountain WHERE Trip_id = 74 OR 
SELECT Atmosphere FROM Forest WHERE Trip_id = 74;

(我知道上面的代码不起作用)。

我确实最终使用 Java 解决了这个问题:

String sqlStatement = "SELECT Trip_id FROM Mountains WHERE Trip_id = 74";

if (/*(execute sql statement) == null*/){
//Use Forest (and Atmosphere)
}

else{
//Use Mountain (and Temperature)
}

但是mysql中没有if语句,所以我想知道是否可以使用mysql来解决这个问题。

我的想法是这样的:SELECT * FROM FOREST OR MOUNTAIN WHERE Trip_id = 74 EXISTS;(我知道这段代码是垃圾而且完全错误,但我希望它能帮助说明我的意思旨在)。

P.S 如果列相同,那么这将是最佳答案:

select m.*
from mountains m
where m.trip_id = 74
union all
select f.*
from forests f
where f.trip_id = 74;

感谢Gordon Linoff提供了这个答案。

最佳答案

mysql 中有 if 语句。反正!

你可以这样做:

SELECT Temperature as Value FROM Mountain WHERE Trip_id = 74
Union All
SELECT Atmosphere as Value FROM Forest WHERE Trip_id = 74

关于mysql - 在两个表之间如何选择一个特定值的id存在的表mysql(重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109560/

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