Съвсем сигурен съм, че проблемът ви е заради вашата GROUP BY
клауза. Не съм сигурен каква е целта ви да го използвате, но опитайте без него. Ако получите дублиращи се редове, опитайте да използвате SELECT DISTINCT
. Ако целта ви е била да подредите резултатите въз основа на тази колона, тогава използвайте ORDER BY
.
Също така, като посочите receipt_no
два пъти в WHERE
клаузата е излишна. Тези две таблици вече са обединени от тази колона, така че филтрирането й в една таблица е всичко, което трябва да направите. И обратните отметки всъщност не са необходими, с изключение на някои специални изключения, като интервали или запетаи в името на колоната или колони, наречени по същия начин като запазените думи (може да са и няколко други). Единствената ваша колона, която изглежда, че се нуждае от обратни отметки, е date
колона, но дори и да ги изключите в тази колона, пак трябва да сте добре. Просто намирам, че отметките навсякъде правят заявката по-дълга и по-трудна за четене. Те не нараняват нищо, като са там, така че можете да ги оставите, ако това е вашето предпочитание, но лично аз не съм фен.
Пренаписах вашата заявка с моите модификации, споменати по-горе, плюс дадох псевдоними на таблиците, за да я съкратя допълнително. Това не подобрява производителността или нещо подобно, просто улеснява четенето на 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