2014-09-11 2 views
2

Я хочу проверить, равно ли имя пользователя «bryan», а затем присоединиться к tbl_usersinfo с помощью tbl_profile. Моя проблема заключается в том, что он возвращает все строки в объединенной таблице, а не только имя столбца, равное «bryan».И оператор до LEFT JOIN в SQL

вот мой запрос:

SELECT i.users_fname, i.users_lname, i.users_gender, i.users_campus, 
i.users_email, i.course_code, 
p.pic_location FROM tbl_usersinfo AS i 
LEFT JOIN tbl_profile AS p 
ON i.users_fname = 'bryan' 
AND i.users_id = p.users_id 

ответ

2

Вам нужен пункт WHERE:

SELECT i.users_fname, i.users_lname, i.users_gender, i.users_campus, 
i.users_email, i.course_code, 
p.pic_location FROM tbl_usersinfo AS i 
LEFT JOIN tbl_profile AS p 
WHERE i.users_fname = 'bryan' 
3

Возьмите i.users_fname = 'bryan' из присоединиться заявление и поместить его в где заявление:

SELECT i.users_fname, i.users_lname, i.users_gender, i.users_campus, 
     i.users_email, i.course_code, p.pic_location 
FROM tbl_usersinfo AS i 
LEFT JOIN tbl_profile AS p ON i.users_id = p.users_id 
WHERE i.users_fname = 'bryan' 
+0

это работает bro, спасибо :)) –

2

Вот ваш вопрос:

SELECT i.users_fname, i.users_lname, i.users_gender, i.users_campus, 
     i.users_email, i.course_code, p.pic_location 
FROM tbl_usersinfo i LEFT JOIN 
    tbl_profile AS p 
    ON i.users_fname = 'bryan' AND i.users_id = p.users_id; 

left outer join делает следующее. Он возвращает все строки из первой таблицы , даже если предложение from оценивается как недействительное. Условие, которое препятствует возврату строки, может быть в любой таблице. В результате условие на первой таблице не влияет.

Итак, правило прост. Если вы хотите отфильтровать первую таблицу, используйте предложение where. Если вы хотите, чтобы все строки из первой таблицы, но для фильтрации на втором, поместите условие в предложение on. Вы хотите:

SELECT i.users_fname, i.users_lname, i.users_gender, i.users_campus, 
     i.users_email, i.course_code, p.pic_location 
FROM tbl_usersinfo i LEFT JOIN 
    tbl_profile AS p 
    ON i.users_id = p.users_id 
WHERE i.users_fname = 'bryan'; 
+0

спасибо, сэр, я буду помнить об этом. –