2012-01-25 4 views
0

Таблицы:MySQL левое соединение существует

  • пользователей: идентификатор, имя
  • usersFacebookFriends: идентификатор, UID, friendUid, имя

мне нужен запрос для поиска друзей (имя), и проверьте, существуют ли они в таблице пользователей, поэтому они также находятся на зарегистрированном сайте.

Возможно ли это с левым объединением, и если да, то как?

Спасибо.

ответ

0

Я предполагаю, что это должно сделать работу. Если facebook friend не зарегистрирован на вашем сайте corrsponding, введенные поля таблицы пользователя будут NULL.

SELECT f.name, u.* FROM usersFacebookFriends AS f 
LEFT JOIN users AS u 
ON f.friendUid = u.id 
WHERE f.uid = 123 

Изменение LEFT JOIN в INNER JOIN, если вам нужно найти только те, кто существует.

3
SELECT ff.id, ff.uid, ff.friendUid, ff.name, u.id, u.name 
    FROM usersFacebookFriends ff 
     LEFT JOIN users u 
      ON ff.name = u.name; 

Если вы хотите только те, которые существуют:

SELECT ff.id, ff.uid, ff.friendUid, ff.name, u.id, u.name 
    FROM usersFacebookFriends ff 
     INNER JOIN users u 
      ON ff.name = u.name; 

Если вы хотите только те, которые не существуют:

SELECT ff.id, ff.uid, ff.friendUid, ff.name, u.id, u.name 
    FROM usersFacebookFriends ff 
     LEFT JOIN users u 
      ON ff.name = u.name 
    WHERE u.id IS NULL; 
Смежные вопросы