ichou 发表于 2012-11-24 05:07:53

Active Record 类 不支持联表更新?

目标SQL:
UPDATE a LEFT JOIN b on a.id=b.a_id SET a.title='aaaaa',b.body='bbbb' WHERE a.id=1

Active Record 类的使用:

$this->db->where('a.id',1);      
$this->db->join('b','a.id=b.a_id','left');
$this->db->set('a.title', 'aaaaa');
$this->db->set('b.body', 'bbbb');
$this->db->update('a');
               

得到的SQL:
UPDATE `a` SET `a`.`title` = 'aaaaa', `b`.`body` = 'bbbb' WHERE `a`.`id` = 1

Join部分就没有了 难道是因为主对象table被写在后面所以没办法添加?

求解释啊求解释

Hex 发表于 2012-11-25 13:46:28

是的,AR 不是什么都支持,复杂的请用 SQL 直接写。

ichou 发表于 2012-11-25 16:31:29

Hex 发表于 2012-11-25 13:46 static/image/common/back.gif
是的,AR 不是什么都支持,复杂的请用 SQL 直接写。

嗯嗯 看了下源码 修改修改也是可以的 不过怕把其他的搞坏了 就放弃了
现在就采用的直接写SQL

话说 Hex酱 你真的太客气了 拜托下次不要对我用 请 字哦 我会过意不去的:loveliness:

Hex 发表于 2012-11-26 00:12:06

ichou 发表于 2012-11-25 16:31 static/image/common/back.gif
嗯嗯 看了下源码 修改修改也是可以的 不过怕把其他的搞坏了 就放弃了
现在就采用的直接写SQL



呵呵,你太客气了

o熊小猫o 发表于 2012-12-2 10:43:23

Hex 发表于 2012-11-25 13:46 static/image/common/back.gif
是的,AR 不是什么都支持,复杂的请用 SQL 直接写。

一直没注意到这个问题。直到前几天自己遇到了,找了好久,最终发现AR不支持这么干。:sleepy:

ichou 发表于 2012-12-2 10:57:50

o熊小猫o 发表于 2012-12-2 10:43 static/image/common/back.gif
一直没注意到这个问题。直到前几天自己遇到了,找了好久,最终发现AR不支持这么干。 ...

:handshake
页: [1]
查看完整版本: Active Record 类 不支持联表更新?