Can SQL do conditional join?

Semidevil

Diamond Member
Apr 26, 2002
3,017
0
76
I have a ''student" table I want to join with an "ID" table.

The "ID" table has 3 columns: "code" (I.e xxx), "sub code" (xxx-yy), and "type" (I.e, "aaa" or "bbb").

My issue is I want to left join by "xxx" when type = "aaa" and join by "xxx-yy" when type = "bbb".

How do I join with this condition?

I tried

select *

From students s
Left join ID as IDnum on s.code = IDnum.code and idnum = 'aaa'
Left join ID as IDnum on s.subcode = IDnum.code and idnum = ''bbb'

This gives me an error for using the table twice in my join
 
Last edited:

KB

Diamond Member
Nov 8, 1999
5,406
389
126
Doing a join is just like doing a WHERE statement which means you can include functions, ORs ,ANDs etc.

Code:
From students s
Left join ID as IDnum on (s.code = IDnum.code and idnum = 'aaa') OR (s.subcode = IDnum.code and idnum = ''bbb')
 

Semidevil

Diamond Member
Apr 26, 2002
3,017
0
76
Thanks. That makes sense. Now, when I do a group by, it gives me an 'invalid column name," and it is pointing to all my group by lines.

(I realize I need the aggregate functions. These are all in my code)
 

nakedfrog

No Lifer
Apr 3, 2001
61,047
16,454
136
I have a ''student" table I want to join with an "ID" table.

The "ID" table has 3 columns: "code" (I.e xxx), "sub code" (xxx-yy), and "type" (I.e, "aaa" or "bbb").

My issue is I want to left join by "xxx" when type = "aaa" and join by "xxx-yy" when type = "bbb".

How do I join with this condition?

I tried

select *

From students s
Left join ID as IDnum on s.code = IDnum.code and idnum = 'aaa'
Left join ID as IDnum on s.subcode = IDnum.code and idnum = ''bbb'

This gives me an error for using the table twice in my join

In addition to what was mentioned previously, if you alias the second reference to the table differently, that would work too.

select *
From students s
Left join ID as IDnum on s.code = IDnum.code and idnum = 'aaa'
Left join ID as IDnum2 on s.subcode = IDnum2.code and idnum = ''bbb'
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |