多表查询以下两种方法那种更好一些?它们有什么区别?在数据库查询的时候有何影响?
(为了描述基本情况假设数据库中有如下两表)
说明:a表为用户表,b表为用户划分组a表中主要有userID,userName,userGroup,userRubbish (其它字段省略)
b表中主要有groupID,groupName (其它字段省略)方法一:$sql="select
a.userID, //userID为用户的序列ID(主键)
a.userName, //userName为用户的登录名
b.groupName //groupName为组名称(如:普通用户;中级用户;高级用户)
from a_user as a inner join b_group as b On a.userGroup=b.groupID order by a.userID desc"; //userGroup的值为groupID中间循环步骤省略
================================================================================方法二:$sql="select * from a_user where userRubbish=0 order by userID desc"; //userRubbish为0的时候显示 为1的就不显示
$result=mysql_query($sql);
$rs=mysql_fetch_array($result);$groupID=$rs['userGroup'];
$sql="select * from b_group where groupID=$groupID";中间循环步骤省略
================================================================================
(两种方法中都有所省略)两种方法最后都可以实现:用户ID 用户名 用户组
3 王五 普通用户
2 张三 普通用户
1 李四 中级用户多表查询以上两种方法那种更好一些?它们有什么区别?在数据库查询的时候有何影响?
(为了描述基本情况假设数据库中有如下两表)
说明:a表为用户表,b表为用户划分组a表中主要有userID,userName,userGroup,userRubbish (其它字段省略)
b表中主要有groupID,groupName (其它字段省略)方法一:$sql="select
a.userID, //userID为用户的序列ID(主键)
a.userName, //userName为用户的登录名
b.groupName //groupName为组名称(如:普通用户;中级用户;高级用户)
from a_user as a inner join b_group as b On a.userGroup=b.groupID order by a.userID desc"; //userGroup的值为groupID中间循环步骤省略
================================================================================方法二:$sql="select * from a_user where userRubbish=0 order by userID desc"; //userRubbish为0的时候显示 为1的就不显示
$result=mysql_query($sql);
$rs=mysql_fetch_array($result);$groupID=$rs['userGroup'];
$sql="select * from b_group where groupID=$groupID";中间循环步骤省略
================================================================================
(两种方法中都有所省略)两种方法最后都可以实现:用户ID 用户名 用户组
3 王五 普通用户
2 张三 普通用户
1 李四 中级用户多表查询以上两种方法那种更好一些?它们有什么区别?在数据库查询的时候有何影响?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货