
评论(6)相关
x5342957392017年11月21日
$data['data']=$this->where($map)
->order("$orderby $orderway")
->field("a.*,b.brand_name,c.cat_name")
->alias('a')
->join('LEFT JOIN __BRAND__ b ON a.brand_id=b.id')
->join('LEFT JOIN __CATEGORY__ c ON a.cat_id=c.id')
->select()
复制代码
x5342957392017年11月21日
两个join就可以完美解决
guojie2016年06月15日
写了报错了,不存在该表
liangh2014年02月28日
三种方法:
1.采用关联模型
2.像yybawang 说的.采用 join 方式查询
3.写普通的 SQL 语句 然后用 query() 来查询
以上2和3如果不会用.可以看看手册,或在官网搜索.都有相关详细的教程
曼德2014年02月27日
手册有写。举例a=artist, b=work, c=card, 取c表中的字段:在field里添加,如field('card.name,card.address')如不加field即取三表全部字段
$Model->join('work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->field('')->select()
复制代码
回复xialei19902016年08月24日
这个不是三级关联啊
回复zhushichuan2017年04月22日
回复 xialei1990 : 6666666666666
yybawang2014年02月27日
$a = M('a')
$res = $a->join('left join a on a.id = b.id left join b.id = c.id')->select()
dump($res)
这样三张表的字段就在一起了,不知道符不符合你要求
你好,用sql语句是不可能实现的,我们可以通过事务来实现,也就是说,SqlCommand的CmdText属性在一个方法当中可以赋多个SQL语句 SqlConnection sqlConnection = new SqlConnection()...初始化连接 // 开启事务 SqlTransaction sqlTransaction = sqlConnection.BeginTransaction()// 将事务应用于Command SqlCommand sqlCommand = new SqlCommand()sqlCommand.Connection = sqlConnectionsqlCommand.Transaction = sqlTransactionsqlCommand.CmdText=第一个sql语句 sqlCommand.ExcuteNoneQuery()sqlCommand.CmdText=第二个sql语句 sqlCommand.ExcuteNoneQuert()try { // 利用sqlcommand进行数据 *** 作 ... // 成功提交 sqlTransaction.Commit()} catch(Exception ex) { // 出错回滚 sqlTransaction.Rollback()} 如果在执行第二次SQL语句是出错了,那么就会到Catch异常中,执行回滚,那么第一次执行的也同样回滚了,所以必须2个都一行成功才往数据库中提交这里是用了2次SQL语句,如果你想用1个语句同时 *** 控2个表的话,就要用到存储过程或者是触发器,存储过程和触发器用原生sql$Model = new Model()
$sql = 'select A.id,A.name,A.age,B.id bid,B.class from A,B,where A.id=B.uid and B.id not in(select c.uid from c)'
$ret = $Model->query($sql)
$ret是一个二维数组,m行n列的
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)