0

これは私のクエリです..

SELECT tcs.tutor_id AS tid, tcs.category_id AS cid, tcs.subject_id AS sid, GROUP_CONCAT( DISTINCT s.subjects SEPARATOR ', ') AS subjects,
t.tutor_name, t.tutor_code AS tcode, DATE_FORMAT(t.registration_date, '%b %D, %Y') AS date, t.qualification,
GROUP_CONCAT( DISTINCT o.option_name SEPARATOR ', ') AS tutor_option, timg.image_name AS img
FROM tutor_category_subject as tcs
INNER JOIN subject AS s ON tcs.subject_id = s.subject_id
INNER JOIN tutor_option AS toption ON toption.tutor_id = tcs.tutor_id
INNER JOIN options AS o ON toption.option_id = o.option_id
INNER JOIN tutors AS t ON tcs.tutor_id = t.tutor_id
LEFT JOIN tutor_images AS timg ON timg.tutor_id = tcs.tutor_id
WHERE s.subjects LIKE '%business%' AND timg.image_type = 'profile'
GROUP BY tcs.tutor_id;

このクエリは正常に動作しています..しかし、timg の image_type coloum に問題があります。家庭教師にはプロフィール画像がある場合と、プロフィール画像がない場合があります。ただし、プロフィール画像でなくても、この条件のすべてのチューターを選択する必要があります。このクエリで、チューターが選択していないチューターへのプロフィール画像がない場合...では、どうすればこれを行うことができますか..?

どんなコメントでも大歓迎です。ありがとうございました

4

2 に答える 2

3

句内のフィルターをforWHERE句に移動するだけです。JOINtutor_images

SELECT tcs.tutor_id AS tid, tcs.category_id AS cid, tcs.subject_id AS sid, GROUP_CONCAT( DISTINCT s.subjects SEPARATOR ', ') AS subjects,
t.tutor_name, t.tutor_code AS tcode, DATE_FORMAT(t.registration_date, '%b %D, %Y') AS date, t.qualification,
GROUP_CONCAT( DISTINCT o.option_name SEPARATOR ', ') AS tutor_option, timg.image_name AS img
FROM tutor_category_subject as tcs
INNER JOIN subject AS s ON tcs.subject_id = s.subject_id
INNER JOIN tutor_option AS toption ON toption.tutor_id = tcs.tutor_id
INNER JOIN options AS o ON toption.option_id = o.option_id
INNER JOIN tutors AS t ON tcs.tutor_id = t.tutor_id
LEFT JOIN tutor_images AS timg ON timg.tutor_id = tcs.tutor_id AND timg.image_type = 'profile'
WHERE s.subjects LIKE '%business%' 
GROUP BY tcs.tutor_id;
于 2012-10-31T13:39:34.547 に答える
1

WHERE次のセクションでも実行できます。

WHERE s.subjects LIKE '%business%' AND (timg.image_type = 'profile' OR timg.image_type is NULL)
于 2012-10-31T13:43:26.080 に答える