Справка по SQL JOIN - PullRequest
       13

Справка по SQL JOIN

1 голос
/ 12 января 2009

ВЫБРАТЬ * ОТ друзей ГДЕ (user1 = $ userid ИЛИ user2 = $ userid) И принято = 1

как будет выглядеть JOIN, если я захочу получить, скажем, информацию user2 из таблицы "users"?

таблица друзей: id int (11) NOT NULL auto_increment, user1 int (11) NOT NULL, user2 int (11) NOT NULL, date datetime НЕ NULL, accept tinyint (1) НЕ ПУСТО, type varchar (32) NOT NULL

Пользователи: id mediumint (8) NOT NULL auto_increment, username varchar (32) NOT NULL, password varchar (40) NOT NULL

Ответы [ 3 ]

3 голосов
/ 12 января 2009
SELECT u.*, f.* FROM friends f 
JOIN users u ON u.id=f.user2 
WHERE (f.user1= $userid OR f.user2=$userid) 
AND f.accepted = 1
1 голос
/ 12 января 2009

Вы сказали, что безуспешно пытались (основываясь на ответе Марка Тайлера?)

$sql = mysql_query(" SELECT u., f. FROM relations f JOIN users u ON u.id=f.user2 WHERE (f.user1=$row[id] OR f.user2=$userid) AND f.accepted = '1' ");

Но не должен

'select u., f. from ...' 

быть

'select u.*, f.* from ...'

1 голос
/ 12 января 2009

Что-то вроде следующего.

SELECT f.*, u1.*, u2.* FROM friends f
INNER JOIN users u1 ON f.user1 = u1.id
INNER JOIN users u2 ON f.user2 = u2.id
WHERE (f.user1 = $userid OR f.user2 = $userid) AND f.accepted = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...