2017-09-25 2 views
0

Ich habe 3 Tabellen Benutzer, Projekt, Abteilung.Ich möchte 'Owner_id' (DCE005) aus der Projekttabelle erhalten und die Benutzer_id (2) aus der Tabelle Benutzer erhalten und die PM_dceid (DCE003) des Projekteigentümers und prüfen (DCE003) nicht in der Spalte 'dept_head' der Abteilungstabelle. Wenn (DCE003) nicht in dept_head (DCE004, DCE007, DCE009), dann den Wert (3) aus der Tabelle users holen. Ist es möglich, rekursiv zu werden DatenHolen Sie den Wert aus der Datentabelle

project table 
id owner_id dept_id 
    4 DCE005  005 

users table 
user_id dceid name PM_dceid 
    1 DCE001 user1 DCE003 
    2 DCE005 user2 DCE003 
    3 DCE003 user3 DCE009 

Department table 
id dept-id dept_head 
    2  005  DCE004 
    3  006  DCE007 
    4    DCE009 

query 
$dept= department::pluck('dept_head')->all(); 
$project=DB::table('project') 
     ->join('users', 'project.project_owner_id', '=', 'users.aceid')->whereNotIn('users.id', $dept) 
+0

Ja, müssen Sie 'join' sowie' self' –

+0

beitreten können Sie einige Beispiel geben – user3386779

Antwort

0

ja ist es möglich. Verwenden Sie geschachtelte Auswahlelemente zusammen mit In nicht in Schlüsselwörtern.

Wäre so etwas wie dieses:

DB::select(DB::raw('select * from users, IF((SELECT users.PM_dceid FROM project, users WHERE project.owner_id = users.dceid AND project.owner_id= (SELECT owner_id FROM project LIMIT 1)) NOT IN (SELECT dept_head FROM Department)) WHERE id = " '.$yorKey.'" '));

+0

können Sie Beispiel geben – user3386779

+0

'erhalten den Wert (3) aus der Benutzertabelle. meinst du eine andere Benutzerform db auswählen? – Amin

+0

keine gleichen Benutzer Tabelle – user3386779

Verwandte Themen