2016-09-02 2 views
-1

Ich habe Tabelle Mitarbeiter, die etwa 9 Spalten enthält. ‚ID, Name, etc ..‘Wie bekomme ich alle Spalten von einer Tabelle und nur eine Spalte von einer anderen Tabelle mit ID? - MySql

und ich habe eine andere Tabelle ‚ONCALL‘ enthalten 3 Spalten ‚employee_id, department_id und Rang‘

, was ich will, ist die Mitarbeiterdaten abzurufen, die als OnCall Mitarbeiter registriert ist auf dieser Abteilung

ich versuche dies die Mitarbeiterdaten zu erhalten:

Select * from employee where id in (SELECT employee_id FROM onCall where department_id = 3) 

Aber wie diese kann ich weiß nicht, was der Rang des ONCALL Mitarbeiter ist, ist er als primäre oder Backup registriert, wie kann Ich füge Rang-Spalte von onCall Tabelle aber nur für die selec zusammen ted Mitarbeiter durch die id

Ich habe versucht, sie zu verbinden, aber ich bekomme diese Syntaxfehler

jede mögliche Weise zu lösen?

+0

Sie eine 'innere join' verwenden können verwendet werden. –

Antwort

1

Dies erfordert eine innere Verknüpfung

select EMP.*, OC.* 
from EMPLOYEE EMP 
inner join ONCALL OC 
on OC.EMPLOYEE_ID = EMP.ID 
where OC.DEPARTMENT = 3 
+0

Danke, dass es funktioniert – Zizoo

1

die gewünschten Spalten mit Tabellenaliasnamen Dies kann Ihnen helfen und

Select e.*, o.* from employee e 
LEFT JOIN onCall o ON o.employee_id = e.id 
    AND o.department_id = 3 
+0

Der Abfrageteil "where id in (SELECT ..." impliziert einen INNER, was hier gebraucht wird – JohnHC

Verwandte Themen