Tenho quase certeza de que seu problema é devido ao seu
GROUP BY
cláusula. Não tenho certeza de qual era seu objetivo ao usar isso, mas tente sem ele. Se você obtiver linhas duplicadas, tente usar SELECT DISTINCT
. Se seu objetivo era ordenar os resultados com base nessa coluna, use ORDER BY
. Além disso, especificando o
receipt_no
duas vezes no WHERE
cláusula é redundante. Essas duas tabelas já estão unidas por essa coluna, portanto, filtrá-la em uma tabela é tudo o que você precisa fazer. E os backticks não são realmente necessários, exceto por algumas exceções especiais, como espaços ou vírgulas no nome da coluna, ou colunas com o mesmo nome das palavras reservadas (podem ser algumas outras também). A única coluna sua que parece precisar de acentos graves é a date
coluna, mas mesmo excluindo-os nessa coluna, você ainda deve estar bem. Acabei de descobrir que backticks em todos os lugares tornam a consulta mais longa e difícil de ler. Eles não prejudicam nada por estarem lá, então você pode deixá-los se for sua preferência, mas pessoalmente, eu não sou fã. Reescrevi sua consulta com minhas modificações mencionadas acima, além de fornecer aliases às tabelas para encurtá-la ainda mais. Isso não melhora o desempenho nem nada, apenas facilita a leitura do 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