-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 处理了数组)如果找到则只加入两个表,否则继续

另外,如果在我的选择语句中说示例:我有

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 回答