如何从两个MySQL表中显示用户

时间:2014-10-09 02:16:15

标签: php mysql sql

我有两个mysql表 - 成员和addclique。成员表包含所有用户的详细信息,而addclique表是'friends'表,有两列-adder_id,其中包含发送好友请求的用户的id和clique_id,包含接受好友请求的用户的id。

请尝试选择特定用户的朋友,但我很难从会员表中获取朋友的详细信息(照片,姓名等),因为我不知道在哪个点加入会员表到addclique表。

$sql = "SELECT i.*, m.* FROM addclique i JOIN members m ON m.id = ******** WHERE adder_id = :id OR clique_id = :id";

$result= $db->query($sql, array('id' => $_SESSION['id']);

2 个答案:

答案 0 :(得分:2)

下面的查询将选择特定人员添加的所有成员以及添加了同一个人的所有成员。

select m.* from members m
join addclique a on m.id = a.adder_id
where a.clique_id = :id

union 

select m.* from members m
join addclique a on m.id = a.clique_id
where a.adder_id = :id

答案 1 :(得分:1)

如果我正确理解您的问题,您需要加入m.id = a.adder_id or m.id = a.clique_id。您可以使用in

执行此操作
set @id := 4;

select *
from members m
    join addclique a on m.id in (a.adder_id, a.clique_id)
where @id in (a.adder_id, a.clique_id)
  and m.id != @id