MYSQL - 选择查询其中条件引用同一个表

时间:2016-07-20 05:42:20

标签: mysql

我有一张表格如下:

TBLA

code    |    name    |    parent_code  | status    | child
---------------------------------------------------------
1       | ABC        |                 | complete  | N
1.1     | ABC.1      | 1               | pending   | Y
2       | BCD        |                 | pending   | N
2.1     | BCD.1      | 2               | pending   | Y

我正在尝试使用child = Y及其父status = complete

获取记录

这是我想要的输出

code    |    name    |    parent_code  | status    | child
----------------------------------------------------------
1.1     | ABC.1      | 1               | pending   | Y

到目前为止,我使用的方法是使用child=Y查询所有记录并再次循环以获取上一个查询中code的每个parent_code基础的状态。

是否可以使查询更简单?

3 个答案:

答案 0 :(得分:1)

自我加入应该做的工作:

SELECT child.*
from tblA child join tblA parent on child.parent_code =parent.code
WHERE parent.child = 'N' and parent.status = 'complete'

答案 1 :(得分:1)

检查一下。

SELECT C.*
    FROM tblA C
    INNER JOIN tblA P ON P.code = C.parent_code
    WHERE C.child = 'Y'
        AND P.status = 'complete'

答案 2 :(得分:0)

SELECT code,  name ,  parent_code,status, child
from tblA
WHERE child = 'Y' and status = 'PENDING'

pl. try i am not sure about your resultset