gpt4 book ai didi

mysql - 使用条件从第二个表中选择行

转载 作者:行者123 更新时间:2023-11-29 10:06:42 24 4
gpt4 key购买 nike

我有如下输入表

表a:

id      name    state 
12345 john az
45678 henry AL
11111 jack PA
22222 brian TL

table b :

id queuenum randomnum mid
12345 100 AAAAA aa
12345 100 BBBBB bb
12345 100 CCCCCC cc
12345 100 DDDDD dd
12345 200 CCCCCC ee
12345 200 DDDDD ff
12345 200 EEEEE gg
12345 200 FFFFF hh
45678 100 a1a2a3 ii
45678 100 b1b2b3 jj
45678 200 a1a2a3 ll
45678 200 b1b2b3 mm
45678 200 E1E2E3 nn

在表 B 中,queuenum 列将为 100 或 200。首先,我需要从表“A”中选择“id”,并检查第 100 行和第 200 行的随机数,并获取相应的 200 行的中值。

我的意思是,假设上面的“id”“12345”有随机数 CCCCCC 和 DDDDD,分别为 100 和 200。现在我需要获取 ee 或 ff(只有一个)。因此最终输出应该是输入表 + 中间列(值为 200,该 id 的随机数与 100 相同)。

ID     name     state      mid
12345 JOHN AZ ee/ff (ONLY ONE)
45678 henry AL ll/mm (ONLY ONE)

最佳答案

此查询将执行您想要的操作。它将 JOIN s ab 两次,一次查找 randomnum 值为 100 的 queuenum 值,然后再次查找第一个 randomnum 中的 JOIN 对应的 queuenum 为 200 的情况。然后 GROUP BY a.id 选择一个随机值用于输出的 mid 值。

SELECT a.id, a.name, a.state, b1.mid 
FROM a
JOIN b ON b.id = a.id AND b.queuenum = 100
JOIN b b1 ON b1.id = a.id AND b1.randomnum = b.randomnum AND b1.queuenum = 200
GROUP BY a.id

输出:

id      name    state   mid
12345 john az ee
45678 henry AL ll

SQLFiddle

关于mysql - 使用条件从第二个表中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51795097/

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