我有一个输入表如下
表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行选择相同的randomnum,然后得到相应200行的中间值。
我的意思是说,从上面说,id“12345”在100和200中有randomnum cccc和ddddd。现在我需要得到要么ee或ff(只有一个)。所以最终的输出应该是input table+mid column(值为200时,该id的randomnum等于100)。
ID name state mid
12345 JOHN AZ ee/ff (ONLY ONE)
45678 henry AL ll/mm (ONLY ONE)
请告知。
1条答案
按热度按时间ljsrvy3e1#
此查询将执行您想要的操作。它
JOIN
sa
至b
两次,一次找到randomnum
具有queuenum
值为100,然后再次查找randomnum
从一开始JOIN
有相应的queuenum
200个。这个GROUP BY
a、 id然后选择一个随机值mid
用于输出。输出:
sqlfiddle公司