【发布时间】:2019-02-17 15:13:01
【问题描述】:
我有两张表 Parent 和 Child。
父表有以下列
Parent_id,姓名
子表有以下列
Parent_id(外键),Identifier,identifier_value
现在我想列出不同的 parent_id,其名称和 identifier_value(子表)对于 Identifier = "test" 具有相同的 identifier_value 但对于 Identifier = "test1" 具有不同的 identifier_value
即考虑一个例子
父表---
Parent_id, Name
1, XYZ
2, PQR
子表
Parent_id, Identifier, Identifier_value
1, test, value1
1, test1, ghght
2, test, value1
2, test1, khkhgj
输出应该是
1, XYZ, value1, ghght
2, PQR, value1, khkhgj
它应该返回上面例子的结果,如 parent_id 1 和 2,test 具有相同的值,但 test1 具有不同的值
这是我写到现在的内容
SELECT p.parent_id,
p.name,
eid.identifier_value,
eid2.identifier_value
FROM parent p,
child eid,
child eid2
WHERE e.parent_id = eid.parent_id
AND e.parent_id = eid2.parent_id
AND eid.identifier = 'test'
AND eid2.identifier = 'test1'
AND EXISTS
(SELECT 1
FROM child eid3
WHERE eid3.identifier = 'test'
AND eid3.value =eid.value
AND eid3.parent_id <> eid.parent_id
AND EXISTS
(SELECT 1
FROM child eid4
WHERE eid4.parent_id = eid3.parent_id
AND eid4.identifier = 'test1'
AND eid3.value <> eid4.value
AND eid4.identifier = eid3.identifier
)
)
最后一个子查询中的问题。需要一些建议。
【问题讨论】: