Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL zählt Datensätze aus zwei Tabellen in einer Abfrage?

Ich denke, das sollte funktionieren, vorausgesetzt, Ihre tsId und paId sind eindeutige Schlüssel:

SELECT Count(DISTINCT t.tsID) AS tsCount, 
    Count(DISTINCT p.paID) AS paCount
FROM account a 
    LEFT JOIN test t ON a.acId = t.tsAccountId
    LEFT JOIN patient p ON a.acId = p.paAccountId
WHERE a.acId = 1

Und hier ist die SQL Fiddle .

Bitte beachten Sie:Das Problem, wenn Sie der Kontotabelle nicht beitreten (und sie als Haupttabelle verwenden), besteht darin, dass, wenn entweder die Testtabelle oder die Patiententabelle keine Daten für eine bestimmte Konto-ID haben, die Abfrage jeweils 0 Ergebnisse zurückgibt - - was falsch sein könnte.