PHP/MySQL-如何从一列相对于另一列检索数据
可能重复:PHP/MySQL-如何从一列相对于另一列检索数据,mysql,sql,join,Mysql,Sql,Join,可能重复: 我想用php和mysql建立一个小论坛。我有两张桌子: 论坛帖子:id(主键),用户id(外键),文本 及 用户:id(主键),用户名 现在我想列出所有论坛帖子,并在每个帖子中显示作者 我的尝试: $mySQL_getPosts = mysql_query('SELECT * FROM forum_posts ORDER BY id ASC'); 这当然给了我所有的帖子。但是我如何连接到我的用户表呢 最后,我想显示这样一篇文章: Username wrote: | Here go
我想用php和mysql建立一个小论坛。我有两张桌子: 论坛帖子:id(主键),用户id(外键),文本 及 用户:id(主键),用户名 现在我想列出所有论坛帖子,并在每个帖子中显示作者 我的尝试:
$mySQL_getPosts = mysql_query('SELECT * FROM forum_posts ORDER BY id ASC');
这当然给了我所有的帖子。但是我如何连接到我的用户表呢
最后,我想显示这样一篇文章:
Username wrote: | Here goes the text from forum_posts
这是一个选项:
SELECT FP.id,U.Username
FROM forum_posts FP, users U
WHERE FP.user_id = U.id ORDER BY id ASC
我错过什么了吗
但加入更好
这是一个选项:
SELECT FP.id,U.Username
FROM forum_posts FP, users U
WHERE FP.user_id = U.id ORDER BY id ASC
我错过什么了吗
但加入更好
您需要做的是在两个表之间建立连接。在您的情况下,它将是这样的:
Username wrote: | Here goes the text from forum_posts
从论坛中选择f.text、u.username\u帖子加入用户u(f.user\u id=u.id)
了解有关SQL的更多信息,尤其是连接。连接有很多种类型,您可能会遇到其中一些类型的连接。如果您试图在PHP+MySQL中构建一个类似论坛的网站,那么您将编写的大多数查询将至少包含一个连接。您需要做的是在这两个表之间建立一个连接。在您的情况下,它将是这样的:
Username wrote: | Here goes the text from forum_posts
从论坛中选择f.text、u.username\u帖子加入用户u(f.user\u id=u.id)
了解有关SQL的更多信息,尤其是连接。连接有很多种类型,您可能会遇到其中一些类型的连接。如果您试图在PHP+MySQL中构建类似论坛的网站,那么您将编写的大多数查询将至少包含一个join。这就是join命令的用武之地。即使没有相关用户,LEFT JOIN也会从论坛_帖子中获取记录。如果这无法实现,或者如果你不想发布匿名帖子,请删除左侧部分
从论坛中选择f.*,u.username\u发布为f LEFT JOIN user AS u ON f.id=u.id ORDER BY id ASC
这就是JOIN命令的用武之地。即使没有相关用户,LEFT JOIN也会从论坛_帖子中获取记录。如果这无法实现,或者如果你不想发布匿名帖子,请删除左侧部分
选择f.*,u.username FROM forum_posts AS f LEFT JOIN user AS u ON f.id=u.id ORDER BY id ASC
您可以使用基本的内部联接将两个表链接在一起,如下所示:
注意:
最好只从表中选择所需的列,而不是所有列。您可以使用基本的内部联接将两个表链接在一起,如下所示: 注意:
最好只从表中选择所需的列,而不是所有的列。要给出两个表之间的关系,必须使用mysql连接 论坛帖子:id(主键)、用户id(外键)、文本[主表] 用户:id(主键),用户名[借助主表id连接此表]
$sql\u query\u string=“从论坛帖子中选择fp.*作为fp
>以u开启的身份左加入用户(u.id=fp.user\u id)
>按fp.id asc订购”;
>
>$result=mysql\u query($sql\u query\u string);
>
>而($data=mysql\u fetch\u row($result)){
>回显“;打印($result);”;}
此查询将有助于您显示作者,以给出必须使用mysql联接的两个表之间的关系 论坛帖子:id(主键)、用户id(外键)、文本[主表] 用户:id(主键),用户名[借助主表id连接此表]
$sql\u query\u string=“从论坛帖子中选择fp.*作为fp
>以u开启的身份左加入用户(u.id=fp.user\u id)
>按fp.id asc订购”;
>
>$result=mysql\u query($sql\u query\u string);
>
>而($data=mysql\u fetch\u row($result)){
>回显“;打印($result);”;}
此查询将有助于u显示作者+1加入优先于我的答案+1加入优先于我的答案