Php MYSQL:我从一行中得到多行
所以我试图得到一排朋友的msg,但我得到的是一个msg的多行。所以我做了一些研究,但我找不到任何关于它的东西,只有相反的方法 现在,在用户向我发送此查询后,我遇到了第二个问题:Php MYSQL:我从一行中得到多行,php,mysql,sql,rows,Php,Mysql,Sql,Rows,所以我试图得到一排朋友的msg,但我得到的是一个msg的多行。所以我做了一些研究,但我找不到任何关于它的东西,只有相反的方法 现在,在用户向我发送此查询后,我遇到了第二个问题: SELECT msg, userpost_ID, created, userone_ID, usertwo_ID, accepted FROM friendship, Posts WHERE friendship.userone_ID = '13' AND (Posts.userpost_ID = friendshi
SELECT msg, userpost_ID, created, userone_ID, usertwo_ID, accepted
FROM friendship, Posts
WHERE friendship.userone_ID = '13' AND (Posts.userpost_ID = friendship.usertwo_ID OR Posts.userpost_ID = '13')
现在我已经使用了连接语法,但在查询中显示了相同的问题:
SELECT P.msg, P.userpost_ID, P.created,
F.userone_ID, F.usertwo_ID, F.accepted, U.fname, U.lname FROM Posts P JOIN friendship F ON F.userone_ID = '13' JOIN Users U ON U.ID = F.usertwo_ID
您必须在
或
SELECT
msg,
userpost_ID,
created,
userone_ID,
usertwo_ID,
accepted
FROM
friendship,
Posts
WHERE
friendship.userone_ID = '13'
AND (Posts.userpost_ID = friendship.usertwo_ID
OR Posts.userpost_ID = '13')
也可以使用现代的explizite join,而不是使用where来implizit,您在查询中有错误,只需使用下面的查询即可获得准确的结果,或者只需在或条件中添加括号即可
SELECT
msg,
userpost_ID,
created,
userone_ID,
usertwo_ID,
accepted
FROM
friendship,
Posts
WHERE
friendship.userone_ID = '13'
AND (Posts.userpost_ID = friendship.usertwo_ID
OR Posts.userpost_ID = '13')
希望这对你有帮助
感谢和问候切勿在FROM
子句中使用逗号。始终使用正确、明确的JOIN
语法。这几乎可以解决您的问题:
SELECT . . .
FROM friendship f JOIN
Posts p
ON p.userpost_ID = f.usertwo_ID
WHERE f.userone_ID = 13;
注:
- 如果您还需要用户的消息,您只需要
p.userpost\u ID=13
- 表别名使查询更易于编写和读取
- 您应该限定所有列名(指定它们来自的表)
请将SQL语句作为文本而不是图像发布抱歉,我在发布几秒钟后看到了它。我在寻找我的错!你知道哪里的陈述是错误的。最后一个或
不正确,因为现在您的查询显示每个帖子都带有userpost\u id
13,这是因为我也想显示用户自己的帖子。现在查看我的编辑,我遇到了第二个问题。它仍然从id为13的一条消息中生成多条消息。很抱歉,我从未使用连接语法,我需要将语法放在哪里?如果我想用的话。