请问如何对关联表的子表进行查询?
发布于:2022-01-17 09:50:54
#1 dcf80
一对一关联为例子
user表1 灰太狼
2 小羊羊
user_detail表1 不像草原上的王者
2 是一只羊
我想直接对
user_detail 进行查询 该如何操作?
2010-02-18 17:34:56
#2 colddream336
如果是一一对应的表 我理解为主键id一样
只需要对id查询就行了,如果是接收名字查询细节的话
$username=$this->spArgs("username");//接收传递过来的用户名字
$user=spClass("user");//初始化用户表
$conditions=array('username'=>$username);
$result=$user->find($conditions);//找出user表里的那条记录(假设没有重复名字)
$user_detail=spClasee("user_detail");//初始化细节表
$conditions=array('id'=>$result['id']);
$result2=$user_detail->find($conditions);//找出记录
echo "{$username} 的细节是:{$result2['detail']} "//输出
我也是新手有错误请各位指出。
2010-02-18 18:49:31
#3 jake
spClass("user_detail")->*
2010-02-18 19:39:02
#4 dcf80
这种操作是对单表的操作,
我希望的是关联查询
$conditions = array(
'detail' => array(
'intro' => "不像草原上的王者" //查询条件
),
);
$userObj = spClass("user");
$result = $userObj->spLinker()->find($conditions);
但好象这种方式无法实现。
2010-02-20 15:55:33
#5 jake
这种操作是对单表的操作,
我希望的是关联查询
$conditions = array(
'detail' => array(
' ...
dcf80 发表于 2010-2-20 15:55
这个方式本身从逻辑上是有偏差的。在楼上的说法看,user是主表,user_detail是从表。
现在,如果要以user_detail查询,然后再关联user表,那么就应该是user_detail是主表,user是从表。
你可以在user_detail内设置user的关联,那么就可以以查询user_detail开始,再关联到user的记录了。
2010-02-20 16:58:09