我有两张桌子:
tbl_jurusan_snmptn
专栏:
kode_jurusan varchar(50)
jurusan varchar(90)
和session_ujian_snmptn
专栏:
id_ujian
pilihan_1 varchar(50)
pilihan_2 varchar(50)
pilihan_3 varchar(50)
tbl_jurusan_snmptn中的具有值:
kode_jurusan jurusan
10221 Teknik Informatika
10223 Kedokteran
10999 Hukum
11999 Geologi
session_ujian_snmptn值:
id_ujian pilihan_1 pilihan_2 pilihan_3
001 10223 11999 10999
002 11999 10221 10999
我尝试过这样的查询:
SELECT * FROM session_ujian_snmptn a
INNER JOIN `tbl_jurusan_snmptn` b
ON a.pilihan_1 = b.kode_jurusan
OR a.pilihan_2 = b.kode_jurusan
OR a.pilihan_3 = b.kode_jurusan
WHERE a.id_ujian = '001'
但显示结果如下:
id_ujian pilihan_1 pilihan_2 pilihan_3 kode_jurusan jurusan
001 10223 11999 10999 10221 Kedokteran
001 10223 11999 10999 11999 Geologi
001 10223 11999 10999 1099 Hukum
实际上我需要它是这样的:
id_ujian pilihan_1 pilihan_2 pilihan_3
001 Kedokteran Geologi Hukum
非常感谢每一位帮助。 感谢。
答案 0 :(得分:1)
你应该做多个JOINS,如下:
SELECT a.id_ujian, b1.jurusan, b2.jurusan, b3.jurusan
FROM session_ujian_snmptn a
JOIN tbl_jurusan_snmptn b1 ON a.pilihan_1 = b1.kode_jurusan
JOIN tbl_jurusan_snmptn b2 ON a.pilihan_2 = b2.kode_jurusan
JOIN tbl_jurusan_snmptn b3 ON a.pilihan_3 = b3.kode_jurusan
如果您需要获取id_ujian = 001的结果,请添加以下行:
WHERE a.id_ujian = 001
答案 1 :(得分:0)
试试:
SELECT id_ujian ,
max(case when a.pilihan_1 = b.kode_jurusan THEN jurusan end )as 'pilihan_1' ,
max(case when a.pilihan_2 = b.kode_jurusan THEN jurusan end )as 'pilihan_2 ' ,
max(case when a.pilihan_3 = b.kode_jurusan THEN jurusan end )as 'pilihan_3'
FROM session_ujian_snmptn a
inner join `tbl_jurusan_snmptn` b
on a.pilihan_1 = b.kode_jurusan
or a.pilihan_2 = b.kode_jurusan
or a.pilihan_3 = b.kode_jurusan
where a.id_ujian = '001'
如果要选择所有行,则只考虑使用GROUP BY
SELECT id_ujian ,
max(case when a.pilihan_1 = b.kode_jurusan THEN jurusan end )as 'pilihan_1' ,
max(case when a.pilihan_2 = b.kode_jurusan THEN jurusan end )as 'pilihan_2 ' ,
max(case when a.pilihan_3 = b.kode_jurusan THEN jurusan end )as 'pilihan_3'
FROM session_ujian_snmptn a
inner join `tbl_jurusan_snmptn` b
on a.pilihan_1 = b.kode_jurusan
or a.pilihan_2 = b.kode_jurusan
or a.pilihan_3 = b.kode_jurusan
group by id_ujian