-1

私はこれをやろうとしています:

私がしたコントローラで:

foreach($troublesome_pupil as $u)
array_push($bad_pupils,$u->id)

$bad_pupils をモデルに送信し、クエリの前に次のことを行います。

$bad_pupils = implode(',', $bad_pupils);

Select user.name from user
IF (user.id NOT IN '$bad_pupils')
JOIN `marksheet` ON marksheet.id = user.id
JOIN `holiday` ON holiday.id = user.id
ENDIF

基本的に $bad_pupils は配列なので、その配列でユーザー ID をチェックします (私は既に implode を使用して配列を処理しています) 見つかった場合は、2 つのテーブルのみを結合し、それ以外の場合は先に進みます

また、私の選択ステートメントで例を言う場合:私は持っています

select (user.name , marksheet.marks) .. 

行が IF ステートメントでスキップされた場合、その行のマーク列の値はどうなりますか?

どうすればこれを達成できますか?

4

1 に答える 1

1

これ使えますか?

    SELECT user.name, marksheet.marks, holiday.holiday 
      FROM user
 LEFT JOIN marksheet ON marksheet.id = user.id AND user.id NOT IN ($bad_pupils)
 LEFT JOIN holiday ON holiday.id = user.id AND user.id NOT IN ($bad_pupils)
于 2012-08-31T16:33:32.723 に答える