DISTINCT bukan fungsi yang hanya berlaku untuk beberapa kolom. Ini adalah pengubah kueri yang berlaku untuk semua kolom dalam daftar pilih.
Artinya, DISTINCT mengurangi baris hanya jika semua kolom identik dengan kolom dari baris lain.
DISTINCT harus segera mengikuti setelah SELECT (bersama dengan pengubah kueri lainnya, seperti SQL_CALC_FOUND_ROWS). Kemudian mengikuti pengubah kueri, Anda dapat membuat daftar kolom.
-
KANAN:
SELECT DISTINCT foo, ticket_id FROM table...
Keluarkan baris untuk setiap pasangan nilai yang berbeda di seluruh ticket_id dan hu.
-
SALAH:
SELECT foo, DISTINCT ticket_id FROM table...
Jika ada tiga nilai berbeda dari ticket_id, apakah ini akan mengembalikan hanya tiga baris? Bagaimana jika ada enam nilai foo yang berbeda? Manakah tiga nilai dari enam kemungkinan nilai foo yang harus dikeluarkan?
Ini ambigu seperti yang tertulis.