MySQL的左连接查询
问题描述:
我有一个关系表在我的数据库有AKA四个值...MySQL的左连接查询
id, int, primary, auto-incriment
mem1, int
mem2, int
type, enum('a','b')
我也有有会员ID,用户名,姓名另一个表,和姓氏
我想单击一个按钮并获得两个人之间的关系,而不会有重复。 下面是该查询我到目前为止...
SELECT
myMembers.id AS id,
myMembers.username AS username,
myMembers.firstname AS firstname,
myMembers.lastname AS lastname
FROM myMembers
INNER JOIN memberRelations
ON memberRelations.mem2=myMembers.id
WHERE memberRelations.mem1='$id' OR memberRelations.mem2='$id' ORDER BY myMembers.username
ASC
这里的问题是,一些用户它给了我正确的价值观,但对别人它给我的个人资料的用户,而不是其他成员的关系。我怀疑这与查询的ON部分有关,但如实地说我迷路了!有没有更好的方法来实现我的目标?或者我可以纠正我的查询中的某些内容吗?任何帮助将不胜感激。谢谢!
答
根据你的问题,我想你想它选择的关系的成员如下:
SELECT
R.type,
M1.id AS id1,
M1.username AS username1,
M1.firstname AS firstname1,
M1.lastname AS lastname1,
M2.id AS id1,
M2.username AS username2,
M2.firstname AS firstname2,
M2.lastname AS lastname2
FROM memberRelations AS R
INNER JOIN myMembers AS M1 ON R.mem1=M1.id
INNER JOIN myMembers AS M2 ON R.mem2=M2.id
WHERE R.mem1='$id' OR R.mem2='$id'