[英]MySQL Combining/Concat/Multiple Select Query
我很头疼,想弄清楚如何创建合适的MySQL查询来检索我需要的信息。 这是我的TABLE PARAM中的示例行:
Serial | Repeater1 | Repeater2 | Repeater3
我想检索不在“串行”字段中的所有Repeater1,Repeater2或Repeater3。 所有这些字段都在同一SAME TABLE下。
对于前:
Serial | Repeater1 | Repeater2 | Repeater3
1234 | 1111 | 2222 | null
1235 | 1111 | null | null
1236 | 1234 | 1111 | 2222
我的SELECT查询应该只返回:
1111
2222
由于Repeater1中使用的1234以串行方式出现(因此需要避免),即使不同列(在此示例中为Repeater2和Repeater3)下也存在1111或2222,我只想列出DISTINCT Repeater1,Repeater2或Repeater3 NOT IN Serial 。
您有任何想法可以完成此请求吗?
提前很多帮助!
select * from (
select distinct Repeater1 as repeater from table1 where Repeater1 is not null
UNION
select distinct Repeater2 as repeater from table1 where Repeater2 is not null
UNION
select distinct Repeater3 as repeater from table1 where Repeater3 is not null
) as datarepeater
where datarepeater.repeater not in (select serial from table1) and datarepeater.repeater!=0
select r from (
select Repeater1 as r from t WHERE Repeater1 IS NOT NULL
union
select Repeater2 as r from t WHERE Repeater2 IS NOT NULL
union
select Repeater3 as r from t WHERE Repeater3 IS NOT NULL
) reps
left join t
on reps.r = t.Serial
WHERE t.Serial IS NULL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.