簡體   English   中英

MySQL選擇查詢在5.0和5.5之間的區別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM