gpt4 book ai didi

mysql - 如何在 sql 中编写子查询以映射字典值

转载 作者:行者123 更新时间:2023-11-29 00:24:39 25 4
gpt4 key购买 nike

我有一个字典,它将整数映射到字符串,还有另一个表存储整数之间的关系:

    Dictionary (id, stringvalue)
1 Where
2 are you
3 going
4 This
5 is
6 stackoverflow

Table(col1, col2, col3)
Col1 col2 col3
1 2 3
4 5 6

查询两个表的步骤如下:

1. Given string map them to ids using dictionary
2. Given strings map them to corresponding column using Table, which gives an integer
3. Given ids which we got from step1 map them again to string and present the result to the user?

现在为了找出“Where are”之后的下一列值是什么,我可以按以下形式查询:

   select d3.stringvalue from dictionary d1, dictionary d2, dictionary d3, Table t1 where
d1.stringvalue='Where' and d1.id=Table.Col1 and d2.stringvalue='are' and d2.id=Table.Col2 and d3.id=Table.Col3;

我期望从上述查询中得到的输出是:

      you

给定 col1=1('Where'),Col2=2('Are')我想找出 Col3 的字符串值('You')?

然而,事实证明,对于更复杂的查询,这种从 id 到 string 的映射变得很麻烦。有没有什么方法可以将相同的查询转换为 sql 中简洁可读的简短查询

最佳答案

 select SUBSTRING(d2.stringvalue,5,7) AS "YOU" 
from dictionary d1, dictionary d2, dictionary d3, Table t1
where d1.stringvalue='Where' and
d1.id=Table.Col1 and
SUBSTRING(d2.stringvalue,,3) ='are' and
SUBSTRING(d2.stringvalue,5,7) ='you' and
d2.id=Table.Col2 and
d3.id=Table.Col3;

如果您只需要“you”作为输出,上述查询应该有效。

关于mysql - 如何在 sql 中编写子查询以映射字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19506737/

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