这是给出重复结果的查询:
SELECT a.applicant_particular_id, a.name, a.father_name, a.quota_id,
c.hafiz_quran_marks, b.form_status
FROM applicant_particular a,admission_choices b, academic_background c
WHERE b.applicant_particular_id=a.applicant_particular_id
AND c.applicant_particular_id=a.applicant_particular_id
AND a.quota_id='18'
AND b.form_status='RECEIVED'
这是第一个表“applicant_particular”
这是第一个表“applicant_particular”
applicant_particular_id | name | father_name | quota_id
1 John Micheal 18
2 khan ali 19
这是第二个表“admission_choices”
choice_id | form_status | applicant_particular_id | program_id
1 PENDING 2 19
2 RECEIVED 1 18
这是第三个表“academic_background”
background_id | hafiz_marks | applicant_particular_id
1 20 2
2 30 1
答案 0 :(得分:5)
尝试切换到显式连接,然后使用不同的bash in good measure
SELECT distinct
a.applicant_particular_id,
a.name,
a.father_name,
a.quota_id,
c.hafiz_quran_marks,
b.form_status
FROM applicant_particular a
INNER JOIN admission_choices b
ON b.applicant_particular_id=a.applicant_particular_id
INNER JOIN academic_background c
ON c.applicant_particular_id=a.applicant_particular_id
WHERE a.quota_id='18'
AND b.form_status='RECEIVED'
答案 1 :(得分:1)
第二和第三表中可能有多个外键记录,
applicant_particular_id | name | father_name | quota_id
1 John Micheal 18
2 khan ali 19`
Table2有row1的两个外键
choice_id | form_status | applicant_particular_id | program_id
1 PENDING 1 19
2 RECEIVED 1 18
在上面的案例中,查询将为table1#row1提供多条记录 为解决重复问题,您必须添加@JohnHC提及的不同