Jag är ganska säker på att ditt problem beror på din GROUP BY
klausul. Inte säker på vad ditt syfte var med att använda det, men försök utan det. Om du får dubbletter av rader, försök att använda SELECT DISTINCT
. Om ditt mål var att sortera resultaten baserat på den kolumnen, använd sedan ORDER BY
.
Ange även receipt_no
två gånger i WHERE
klausulen är överflödig. Dessa två tabeller är redan sammanfogade av den kolumnen, så att filtrera den i en tabell är allt du behöver göra. Och backticks är egentligen inte nödvändiga förutom vissa speciella undantag, som mellanslag eller kommatecken i kolumnnamnet, eller kolumner som heter samma som reserverade ord (kan vara några andra också). Din enda kolumn som ser ut att behöva backticks är date
kolumnen, men även om du utesluter dem i den kolumnen borde du fortfarande klara dig. Jag tycker bara att backticks överallt gör frågan längre och svårare att läsa. De skadar ingenting av att vara där, så du kan lämna dem om du föredrar det, men personligen är jag inget fan.
Jag skrev om din fråga med mina ändringar som nämns ovan, plus att jag gav tabellernas alias för att förkorta den ytterligare. Detta förbättrar inte prestanda eller något, bara gör det lättare att läsa 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