[英]MySQL left join query
我的数据库中有一个关系表,又有四个值。
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'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.