sql >> Base de Datos >  >> RDS >> Mysql

No puedo obtener esta consulta de combinación mysql para producir el resultado deseado

Estoy bastante seguro de que su problema se debe a su GROUP BY cláusula. No estoy seguro de cuál era su objetivo al usar eso, pero intente sin él. Si obtiene filas duplicadas, intente usar SELECT DISTINCT . Si su objetivo era ordenar los resultados en función de esa columna, utilice ORDER BY .

Además, especificando el receipt_no dos veces en el WHERE cláusula es redundante. Esas dos tablas ya están unidas por esa columna, por lo que todo lo que necesita hacer es filtrarlas en una tabla. Y los acentos graves no son realmente necesarios excepto por algunas excepciones especiales, como espacios o comas en el nombre de la columna, o columnas con el mismo nombre que las palabras reservadas (pueden ser algunas otras también). La única columna tuya que parece que necesita acentos graves es la date columna, pero incluso excluyéndolos en esa columna, aún debería estar bien. Solo encuentro que las comillas invertidas en todas partes hacen que la consulta sea más larga y más difícil de leer. No dañan nada estando allí, así que puedes dejarlos si así lo prefieres, pero personalmente, no soy un fanático.

Reescribí su consulta con mis modificaciones mencionadas anteriormente, además le di alias a las tablas para acortarla aún más. Esto no mejora el rendimiento ni nada, solo facilita la lectura de la OMI:

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