sql >> Database >  >> RDS >> Mysql

Ik kan deze mysql-joinquery niet krijgen om het gewenste resultaat te produceren

Ik ben er vrij zeker van dat uw probleem wordt veroorzaakt door uw GROUP BY clausule. Ik weet niet zeker wat je doel was om dat te gebruiken, maar probeer het zonder. Als je dubbele rijen krijgt, probeer dan SELECT DISTINCT . Als het uw doel was om de resultaten te ordenen op basis van die kolom, gebruik dan ORDER BY .

Geef ook de receipt_no . op twee keer in de WHERE clausule is overbodig. Die twee tabellen zijn al samengevoegd door die kolom, dus het is alles wat u hoeft te doen om deze in één tabel te filteren. En de backticks zijn niet echt nodig, behalve enkele speciale uitzonderingen, zoals spaties of komma's in de kolomnaam, of kolommen die dezelfde naam hebben als gereserveerde woorden (misschien ook een paar andere). De enige kolom van je die eruitziet alsof er backticks nodig zijn, is de date kolom, maar zelfs als u ze in die kolom uitsluit, zou het nog steeds goed moeten komen. Ik vind gewoon dat backticks overal de query langer en moeilijker te lezen maken. Ze doen geen pijn door er te zijn, dus je kunt ze achterlaten als dat je voorkeur heeft, maar persoonlijk ben ik geen fan.

Ik heb je vraag herschreven met mijn hierboven genoemde wijzigingen, plus ik heb de tabellen aliassen gegeven om het verder in te korten. Dit verbetert de prestaties niet of zo, maar maakt het alleen gemakkelijker om IMO te lezen:

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


  1. Maximaal (bruikbaar) aantal rijen in een Postgresql-tabel

  2. hoe voeg ik een aangepaste adapter toe aan de activiteit om de lijst in de activiteit te laten verschijnen?

  3. MySQL - Vind rijen die overeenkomen met alle rijen van samengevoegde tabel

  4. .NET Core 2.1 Identity krijgt alle gebruikers met hun bijbehorende rollen