PHP同一个页面怎么select两张数据表,SQL语句怎么写?
就是一个PHP页面,然后要取两张表的数据,两张表有点关系:表A:文章id文章标题。。。1标题aaaaa2标题bbbb3标题ccccc表B:评论id文章id评论内容11评论...
就是一个PHP页面,然后要取两张表的数据,两张表有点关系:
表A:
文章id 文章标题 。。。
1 标题aaaaa
2 标题bbbb
3 标题ccccc
表B:
评论id 文章id 评论内容
1 1 评论xxxx
2 1 评论yyyyy
3 1 评论zzzzz
4 2 评论mmmmm
现在这个PHP页面是$_GET表A中某个文章id,然后把表A的文章标题、文章内容等以及表B中这个文章id对应的所有评论都取出来,请问应该怎么写SQL语句?还有就是,对于表B来说,"文章id"这个字段是不是跟表A的主键之间要建立外键?
如果单独写SQL就是
select * from A where `article_id`=$_GET['id']
select * from B where `article_id`=$_GET['id']
那这是两条SQL,也就要mysql_query()两次,很麻烦,怎么在一条SQL里写呢?就是取表A中的一条记录,然后取表B中的关于表A中这条记录的所有评论。 展开
表A:
文章id 文章标题 。。。
1 标题aaaaa
2 标题bbbb
3 标题ccccc
表B:
评论id 文章id 评论内容
1 1 评论xxxx
2 1 评论yyyyy
3 1 评论zzzzz
4 2 评论mmmmm
现在这个PHP页面是$_GET表A中某个文章id,然后把表A的文章标题、文章内容等以及表B中这个文章id对应的所有评论都取出来,请问应该怎么写SQL语句?还有就是,对于表B来说,"文章id"这个字段是不是跟表A的主键之间要建立外键?
如果单独写SQL就是
select * from A where `article_id`=$_GET['id']
select * from B where `article_id`=$_GET['id']
那这是两条SQL,也就要mysql_query()两次,很麻烦,怎么在一条SQL里写呢?就是取表A中的一条记录,然后取表B中的关于表A中这条记录的所有评论。 展开
3个回答
展开全部
这种情况最好是两张表分开查,因为一个文章对应多条评论。
如果你嫌查询评论麻烦的话,前台你可以在评论写入或者审核通过后直接把该文章的评论生成缓存,在显示文章的时候直接调缓存信息就行了;后台的话只能两张表分开查,因为牵扯到修改和删除评论信息。
如果你嫌查询评论麻烦的话,前台你可以在评论写入或者审核通过后直接把该文章的评论生成缓存,在显示文章的时候直接调缓存信息就行了;后台的话只能两张表分开查,因为牵扯到修改和删除评论信息。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是说不能用一条sql查询,
select a.* , b.* from a, b where a.article_id=b.article_id and a,article_id=$_GET['id'],
但只要做并不好,会更多消耗数据库和内存资源。用两条sql会明显快很多。
BTW:你这个id是从页面过来的,如果人家传过来一个id,用一个特殊的值:
id= 1;delete from a
你可能就悲剧了。
select a.* , b.* from a, b where a.article_id=b.article_id and a,article_id=$_GET['id'],
但只要做并不好,会更多消耗数据库和内存资源。用两条sql会明显快很多。
BTW:你这个id是从页面过来的,如果人家传过来一个id,用一个特殊的值:
id= 1;delete from a
你可能就悲剧了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select a.文章标题, a.文章内容 , b.评论内容 from A as a, B as b where a.文章id = b.文章id and a.文章id = $_GET['A中某个文章id']
追问
select `t_article`.`article_title`, `t_pinglun`.`pinglun` from `t_article` as a, `t_pinglun` as b where `t_article`.`article_id`=`t_pinglun`.`pinglun_id` and `t_article`.`article_id`= $_GET['id'] ?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询