从多个条件的数据库中获取数据

时间:2018-03-21 07:48:40

标签: mysql sql

我有下面提到的表:

ID   Type      Date                  Status1       Status2      Status3
1    458       2018-01-01 15:04:06   AAA           A            B
2    471       2017-12-31 15:04:06   AAA           A            B
3    458       2018-01-15 15:04:06   BBC           C            D
5    458       2018-01-18 15:04:06   AAA           X            D

Type列中有许多相同的值,我想用下面提到的条件获取数据:

  • Type中的任何值(表格中应该有多次){}为Status1为AAA,而Type中具有相同值的其他行大于上一个{{1} },Date为C,Status2为D或Status3必须为D.

输出:

Status3

我使用下面提到的查询:

ID   Type      Date                  Status1       Status2      Status3
1    458       2018-01-01 15:04:06   AAA           A            B
3    458       2018-01-15 15:04:06   BBC           C            D
5    458       2018-01-18 15:04:06   AAA           X            D

2 个答案:

答案 0 :(得分:0)

您可以尝试以下内容

SELECT t.* FROM `t` INNER JOIN 
(
SELECT `type` , COUNT(`type`) ct FROM t GROUP BY `type` HAVING ct > 1
) t1 
ON t1.type = t.type ORDER BY DATE ASC

我希望这会回归你想要的东西。

答案 1 :(得分:0)

尝试此查询。 希望这会给你欲望输出。

SELECT 
        ID        ,
        Type ,
        Date      ,
        Status1   ,
        Status2   ,
        Status3 
FROM 
       [Tabel_Name]
GROUP BY
       Type
HAVING
       Count(Type)>0 
AND
       Status1='AAA'

UNION 

SELECT 
        ID        ,
        Type      ,
        Date      ,
        Status1   ,
        Status2   ,
        Status3 
FROM 
       [Tabel_Name]
GROUP BY
       Type
HAVING
       Count(Type)>0 
AND
       Date > (SELECT Date From [Tabel_Name] GROUP BY Type HAVING Status1='AAA' AND Count(Type)>0)
AND
       ( Status2='C' AND Status3='D' )
OR
       Status3='D'