SELECT
sys.tbl_unidades.nome_unidade 'name',
sys.tbl_unidades.id_unidade 'value'
FROM
sys.tbl_unidades,
sys.tbl_unidades_contratos
WHERE
sys.tbl_unidades.id_unidade = sys.tbl_unidades_contratos.id_unidade
AND sys.tbl_unidades.dt_fim IS NULL
AND sys.tbl_unidades_contratos.id_contrato = 10
AND EXISTS
(SELECT
sys.tbl_unidades.nome_unidade 'name',
sys.tbl_unidades.id_unidade 'value'
FROM
sys.tbl_unidades,
sys.tbl_unidades_contratos
WHERE
sys.tbl_unidades.id_unidade = sys.tbl_unidades_contratos.id_unidade
AND sys.tbl_unidades.dt_fim IS NULL
AND sys.tbl_unidades_contratos.id_contrato =11)
1条答案
按热度按时间fnatzsnv1#
中的子查询
EXISTS
与主查询不相关。所以它只是检查子查询是否返回任何行,而不是它们是否有相同的行nome_unidade
以及id_unidade
作为主查询。我怀疑在子查询中不需要两个表,只需要检查
tbl_unidades_contratos
.另请参阅如何在mysql中返回具有相同列值的行,以了解查找列中具有所有多个值的id的其他方法。