2009-01-11 5 views
1

SELECT * FROM amis OU (user1 = $ UsagId utilisateur2 = $ userid) et accepté = 1SQL JOIN aide

comment un JOIN ressembler si je veux obtenir lets dire les informations de utilisateur2 de la table « utilisateurs "?

Table des amis: id int (11) NOT auto_increment NULL, user1 int (11) NOT NULL, user2 int (11) NOT NULL, date datetime NOT NULL, accept tinyint (1) NOT NULL, type varchar (32) NOT NULL

utilisateurs: id MEDIUMINT (8) auto_increment NOT NULL, username varchar (32) NOT NULL, password varchar (40) NOT NULL

+0

Veuillez décrire vos tableaux lorsque vous posez des questions comme celles-ci. –

Répondre

3
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

Quelque chose comme le suivant.

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 
1

Vous avez dit que vous a essayé sans succès (basé sur basé sur la réponse de Mark Tyler?)

$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' "); 

Mais il ne faut pas

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

être

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

?