[英]combining two select queries from the same table
我需要做这样的事情:
id tag status user trial Value (other columns)...
1 A Pass peter first 0
2 A Pass peter second 1
3 A Fail peter third 3
4 B Pass peter first 4
5 B Pass peter second 5
6 B Pass peter third 6
选择标记等于A并且状态等于Pass的行,并为其他标记ex:B找到相同的值
id tag status user trial Value_tag_A Value_tag_B (other columns)...
1 A Pass peter first O 4
2 A Pass peter second 1 5
我可以使用php进行一些处理以获得此结果,但我想知道是否可以直接使用sql来完成
我已经尝试了多种变体,但似乎无法接近结果。
解决方案: http : //sqlfiddle.com/#!9/e9068d/17
我不知道为什么在tag=A
的行中也有Value_tag_B
。 我将忽略这一点,也许以下查询是一种方法。
SELECT DISTINCT y.status, y.`user`, y.trial,
(SELECT Value FROM toto WHERE y.`user` = `user` and y.trial = trial and tag = 'A' ) AS Value_tag_A,
(SELECT Value FROM toto WHERE y.`user` = `user` and y.trial = trial and tag = 'B' ) AS Value_tag_B
FROM toto y
WHERE y.trial NOT IN (SELECT DISTINCT trial FROM toto WHERE `status` <> 'Pass')
该代码已被修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.