查询子查询不返回应返回的值
Query with subquery not returning a value that should be returned
为什么查询
SELECT *
FROM tbl X
WHERE NOT EXISTS (SELECT * FROM tbl Y WHERE X.end_date=Y.start_date)
ORDER BY accommodation_id, start_date
没有return下一行?
我确认该行未 returned 将 AND accommodation_id = 7049
添加到 WHERE
子句,因此生成的查询是:
SELECT * FROM wp_byt_accommodation_vacancies X WHERE NOT EXISTS(SELECT * FROM wp_byt_accommodation_vacancies Y WHERE X.end_date=Y.start_date) AND accommodation_id = 7049 ORDER BY accommodation_id, start_date
我使用以下查询验证了 accommodation_id
没有包含 start_date = '2017-04-08
的行:
SELECT * FROM wp_byt_accommodation_vacancies WHERE accommodation_id = 7049 AND start_date = '2017-04-07'
您应该使用以下查询
SELECT *
FROM tbl X
WHERE NOT EXISTS ( SELECT *
FROM tbl Y
WHERE X.end_date=Y.start_date
AND X.accommodation_id = Y.accommodation_id)
ORDER BY accommodation_id, start_date
您忘记了link密钥X.accommodation_id = Y.accommodation_id
为什么查询
SELECT *
FROM tbl X
WHERE NOT EXISTS (SELECT * FROM tbl Y WHERE X.end_date=Y.start_date)
ORDER BY accommodation_id, start_date
没有return下一行?
我确认该行未 returned 将 AND accommodation_id = 7049
添加到 WHERE
子句,因此生成的查询是:
SELECT * FROM wp_byt_accommodation_vacancies X WHERE NOT EXISTS(SELECT * FROM wp_byt_accommodation_vacancies Y WHERE X.end_date=Y.start_date) AND accommodation_id = 7049 ORDER BY accommodation_id, start_date
我使用以下查询验证了 accommodation_id
没有包含 start_date = '2017-04-08
的行:
SELECT * FROM wp_byt_accommodation_vacancies WHERE accommodation_id = 7049 AND start_date = '2017-04-07'
您应该使用以下查询
SELECT *
FROM tbl X
WHERE NOT EXISTS ( SELECT *
FROM tbl Y
WHERE X.end_date=Y.start_date
AND X.accommodation_id = Y.accommodation_id)
ORDER BY accommodation_id, start_date
您忘记了link密钥X.accommodation_id = Y.accommodation_id