Cara bermain Jodohkan Tabel
- Baca instruksi level. Arena menampilkan tabel yang di-JOIN berdampingan, lalu hasil query-mu dan hasil yang dicari (putus-putus).
- Ketik query di editor. Garis jodoh, kolom yang dibandingkan, dan tabel hasil berubah setiap kamu mengetik.
- Kalau query belum terbaca, pesan di bawah tabel menyebut bagian yang salah, misalnya kolom yang ambigu atau alias yang belum didaftarkan.
- Tekan Cek jawaban atau Ctrl + Enter. Yang dicek isi hasilnya: kolom dan barisnya. Urutan baris hanya dinilai di level
ORDER BY, jadiON a = bdanON b = asama-sama benar. - Kalau buntu, buka Petunjuk. Level yang sudah selesai tetap tercentang di browser yang sama.
Yang kamu pelajari
- Level 1
JOIN dan ON
JOINmenyambung baris dua tabel,ONmenyebut kolom mana yang harus sama. - Level 2
tabel.kolom
Kolom yang namanya ada di dua tabel, seperti
id, harus ditulis lengkap dengan nama tabelnya. - Level 3
Alias tabel
Nama pendek seperti
pesanan AS o. Setelah diberi alias, tabel itu dipanggil dengan aliasnya. - Level 5
LEFT JOIN dan NULL
Semua baris tabel kiri tetap ikut. Kalau tidak ada pasangan, kolom tabel kanan diisi
NULL. - Level 6
Tabel kiri
Tabel di
FROMadalah tabel kiri, yaitu tabel yang dijaga utuh olehLEFT JOIN. - Level 7
IS NULL
Mencari baris tanpa pasangan.
= NULLtidak pernah benar, jadi pakaiIS NULL. - Level 9
WHERE setelah JOIN
Menyaring hasil gabungan dengan kolom dari tabel mana pun yang sudah di-JOIN.
- Level 10
JOIN tiga tabel
JOIN bisa disambung. Tiap
JOINmenambah satu tabel denganON-nya sendiri. - Level 11
ORDER BY
Mengurutkan hasil akhir.
DESCdari besar ke kecil.
JOIN membuang, LEFT JOIN menjaga
Rina belum pernah pesan. Dengan pelanggan JOIN pesanan, Rina tidak punya garis jodoh, jadi barisnya hilang dari hasil. Dengan pelanggan LEFT JOIN pesanan, Rina tetap muncul dan kolom pesanannya berisi NULL.
NULL itulah yang dipakai untuk mencari yang tidak punya pasangan: LEFT JOIN, lalu WHERE o.id IS NULL. Polanya sama untuk pelanggan yang belum pernah pesan atau menu yang tidak pernah laku.
Tanya jawab
Apakah harus daftar akun untuk bermain?
Tidak. Semua level bisa dimainkan tanpa akun. Kemajuanmu disimpan di browser yang kamu pakai, jadi akan hilang kalau data browser dihapus.
Apakah query-nya dijalankan di database sungguhan?
Tidak. Query diurai dan dijalankan oleh mesin SQL kecil di browser dengan data warung contoh, jadi tidak ada data yang bisa rusak.
Bagian SQL apa saja yang didukung?
SELECT dengan kolom, *, dan AS, FROM dengan alias, JOIN, INNER JOIN, LEFT JOIN, WHERE dengan =, <>, <, >, AND, OR, IS NULL, dan ORDER BY dengan ASC atau DESC. Mesinnya sama dengan Saringan Kopi, Rekap Kasir, dan Lubang NULL, jadi LIKE, IN, GROUP BY, dan COUNT juga terbaca. Subquery belum ada.
Kenapa tidak ada RIGHT JOIN?
a RIGHT JOIN b sama dengan b LEFT JOIN a. Kebanyakan orang menulis LEFT JOIN saja dan menaruh tabel yang ingin dijaga di FROM, jadi game ini hanya melatih LEFT JOIN.
Kenapa WHERE o.id = NULL hasilnya kosong?
NULL artinya nilainya tidak diketahui. Membandingkan apa pun dengan sesuatu yang tidak diketahui hasilnya juga tidak diketahui, bukan benar, jadi barisnya tidak lolos. Untuk mengecek NULL, SQL memakai IS NULL dan IS NOT NULL.