Saya cukup yakin bahwa masalah Anda adalah karena GROUP BY
your Anda ayat. Tidak yakin apa tujuan Anda menggunakan itu, tetapi cobalah tanpa itu. Jika Anda mendapatkan baris duplikat, coba gunakan SELECT DISTINCT
. Jika tujuan Anda adalah mengurutkan hasil berdasarkan kolom tersebut, gunakan ORDER BY
.
Juga, menentukan receipt_no
dua kali di WHERE
klausa berlebihan. Kedua tabel tersebut sudah bergabung dengan kolom itu, jadi Anda hanya perlu memfilternya dalam satu tabel. Dan backtick tidak benar-benar diperlukan kecuali untuk beberapa pengecualian khusus, seperti spasi atau koma di nama kolom, atau kolom bernama sama dengan kata-kata yang dicadangkan (mungkin beberapa lainnya juga). Satu-satunya kolom Anda yang sepertinya membutuhkan backtick adalah date
kolom, tetapi bahkan mengecualikannya di kolom itu, Anda seharusnya tetap baik-baik saja. Saya hanya menemukan bahwa backticks di mana-mana membuat kueri lebih lama dan lebih sulit dibaca. Mereka tidak merugikan apa pun dengan berada di sana, jadi Anda dapat meninggalkan mereka jika itu pilihan Anda, tetapi secara pribadi, saya bukan penggemarnya.
Saya menulis ulang permintaan Anda dengan modifikasi saya yang disebutkan di atas, ditambah saya memberikan tabel alias untuk lebih mempersingkatnya. Ini tidak meningkatkan kinerja atau apa pun, hanya membuatnya lebih mudah untuk membaca IMO:
SELECT DISTINCT
b.receipt_no, client, operator, discount, total_amount,
amount_paid, balance, `date`, jobtitle, quantity,
amount, date_paid, old_balance, debtor_amount_paid, new_balance
FROM
booking b
INNER JOIN jobtitle jt ON jt.bookingID = b.bookingID
INNER JOIN first_graphics_debtors fgd ON fgd.receipt_no = b.receipt_no
WHERE
b.receipt_no = '753263343'
ORDER BY
jt.quantity