2017-04-16 50 views
0

對不起,我知道在論壇上有很多關於這個問題的答案,但是我沒有成功調整我的問題的答案。如果語句在內部連接的sql查詢中

這裏是我的功能:

public function getPupil($db, $pupil_id){ 
    $pupil = $db->query(' 
     SELECT 
     a.gender as genderPupil, 
     pupil_name, 
     pupil_lastname, 
     a.id as pupilId, 
     b.id as idOne, 
     c.id as idTwo, 
     b.lastname as lastnameOne, 
     b.name as nameOne, 
     c.name as nameTwo, 
     c.lastname as lastnameTwo, 
     birthdate, 
     school, 
     level, 
     allergies, 
     special_diet, 
     tap, 
     d.name as tapNameFirstTerm, 
     e.name as tapNameSecondTerm, 
     f.name as tapNameThirdTerm 

     FROM pupils a 
     INNER JOIN responsibles b ON a.id_responsibles = b.id 
     INNER JOIN responsibles c ON a.id_responsibles_two = c.id 
     INNER JOIN tap_activities d ON a.tap_first_term = d.id 
     INNER JOIN tap_activities e ON a.tap_second_term = e.id 
     INNER JOIN tap_activities f ON a.tap_third_term = f.id 
     WHERE a.id = ? 
     ', [$pupil_id])->fetch(); 
    return $pupil; 
} 

我想補充的條件,不查詢INNER JOIN時a.tap_first_term或a.tap_second_term或a.tap_third_term等於0

非常感謝你的回答。

+0

哪個內連接?你有幾個。另外,你確定這是它的去向嗎?您是針對FROM表中的列進行測試的?除非它依賴於其中一個JOIN表中的值,否則它將放在WHERE子句中。 –

回答

0

我找到了我的解決方案。 對於可能感興趣的人,我只是通過LEFT JOIN更改了tap_activities的三個INNER JOIN。它可以按我的需要工作。