次の SQL クエリに問題があります。ご覧のとおり、いくつかのテーブル (candidate_basic,candidate_lang,province_of_candidate,province,degree_of_candidate) を結合し、その結果を別のテーブル "professional_experience_basic" と結合しますが、クエリは複数のインスタンスを返します (例: id_candidate_basic= に対して 2 つのインスタンスを返します)。 55、または id_candidate_basic=59 の 3 つのインスタンスを返します)。
私の問題は、クエリが id_candidate_basic ごとに 1 つのインスタンスを返すことだけを望んでいることです。つまり、値が 1 の属性「main_job」を持つインスタンスであり、これが不可能な場合は単に null です。
AND professional_experience_basic.main_job=1を WHERE 句の中に入れようとしましたが、 main_job=nullのインスタンスが削除されました。
最終結果に近づいていると感じていますが、この最後の努力には多くの時間を費やしました。誰かが解決策を知っていますか?前もって感謝します。
クエリ:
SELECT DISTINCT
candidate_basic.id_candidate_basic,
candidate_lang.town,
province.name,
degree_of_candidate.id_degree_of_candidate,professional_experience_basic.main_job
FROM (((((candidate_basic
INNER JOIN candidate_lang
ON candidate_lang.id_candidate_basic=candidate_basic.id_candidate_basic)
INNER JOIN province_of_candidate
ON province_of_candidate.id_candidate_basic=candidate_basic.id_candidate_basic)
INNER JOIN province
ON province.id_province=province_of_candidate.id_province)
INNER JOIN degree_of_candidate
ON degree_of_candidate.id_candidate_basic=candidate_basic.id_candidate_basic)
LEFT JOIN professional_experience_basic
ON professional_experience_basic.candidate_id=candidate_basic.id_candidate_basic)
WHERE candidate_basic.candidate_state=2
AND degree_of_candidate.is_main_degree
AND candidate_lang.id_website_lang=1
現在の結果:
私が望む結果: