[英]MySQL Select Query Difference between 5.0 and 5.5
在MySQL 5.0.95和5.5.30上使用以下查詢。
在5.5.30上,它返回正確的結果(1個結果)。
在5.0.95上,它返回正確的結果,但有重復。 因此它返回了兩次(2個結果)。
我沒有在文檔中看到任何會導致這種情況的信息。
SELECT
job.job_id, job.job_number, job.status, job_applicants.job_id,
job_applicants.user_id, job_applicants.accepted,
job_declined.job_id, job_declined.user_id, job_declined.declined
FROM job
JOIN job_applicants ON job.job_id = job_applicants.job_id
LEFT OUTER JOIN job_declined ON job.job_id = job_declined.job_id
WHERE
job_applicants.user_id = 6 AND job_applicants.accepted = 0
AND job.job_id NOT IN
(SELECT DISTINCT job_id FROM job_declined WHERE user_id = 6 and declined = 1)
這是job_declined的LEFT OUTER JOIN。 那不需要在第一個查詢中加入,只需要在子查詢中加入。 顯然是5.0.95。
SELECT
job.job_id, job.job_number, job.status, job_applicants.job_id,
job_applicants.user_id, job_applicants.accepted
FROM job
JOIN job_applicants ON job.job_id = job_applicants.job_id
WHERE
job_applicants.user_id = 6 AND job_applicants.accepted = 0
AND job.job_id NOT IN
(SELECT DISTINCT job_id FROM job_declined WHERE user_id = 6 and declined = 1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.