gpt4 book ai didi

mysql - MYSQL语言中字段级别的比较

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

我有一个表格如下

ID CITY PARENTID
1 VIZ 1
2 HYD 1
3 CHE 1
6 MUM 3
15 KOL 2

我需要一个 SQL,它首先将 ID 字段与 PARENTID 字段中的每个值进行比较,然后恢复到 ID 并为该字段选择相应的城市。

例如,当ID值为3时,它检查其对应的PARENTID为1,然后应返回ID字段中的1对应的CITY值,即VIZ。,

再举一个例子,ID 6,其对应的 PARENTID 为 3,它将再次检查 ID 字段是否为 3,并返回其对应的 CITY,即 CHE。

类似地,对于 ID 15,CITY 应为 HYD,

可以使用 SQL 查询而不是使用任何匿名 block 或存储过程在 MYSQL 中捕获此信息吗?

我使用 SELF JOIN 创建了一条 SQL,如下所示

    SELECT DISTINCT G.CITY FROM TBLGEOMARKET G,TBLGEOMARKET GM
WHERE GM.ID = G.PARENTID;

测试 SQL:

    SELECT DISTINCT G.CITY FROM TBLGEOMARKET G,TBLGEOMARKET GM
WHERE GM.ID = G.PARENTID AND GM.PARENTID = 15;

这里的输出是 KOL,这是不正确的,因为它给出的是 ID 对应的城市,而不是检查 ID 中的 PARENTID 并给出结果,在我们的场景中是 HYD。

我在这里遗漏了一些条款,任何信息都非常感谢。

最佳答案

您可以通过自连接来完成:

select t2.city 
from TBLGEOMARKET t1 inner join TBLGEOMARKET t2
on t2.id = t1.parentid
where t1.id = 3

请参阅demo .
或者您可以使用子查询,这使得代码更易于阅读并且效率不降低:

select city 
from TBLGEOMARKET
where id = (select parentid from TBLGEOMARKET where id = 15)

请参阅demo .

结果:

| city |
| ---- |
| VIZ |

关于mysql - MYSQL语言中字段级别的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57226113/

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