回答

收藏

Propel ORM-连接不相关的表

技术问答 技术问答 278 人阅读 | 0 人回复 | 2023-09-14

该SQL如何将句子转换为Propel(1.6.3)?
* ?( |3 D/ {* \4 c; |' I9 a, iSELECT * FROM table_a JOIN table_b由于tableA和tableB没有外键共享,也没有定义关系。
8 o" ?- }2 J4 P$ v2 O" n0 I9 g( lTableAQuery::create()->join('tableB')因为Propel报错:# L& ?" t3 @, M5 u, i
致命错误:新闻’TableA表上的未知关系TableB未捕获异常’PropelException’
% r/ t7 n/ O# M  x
非常感谢您的帮助和提示!这是我在这里的第一篇文章,希望我还没有做错什么:-)(在发布之前,我已经进行了彻底的搜索!)
! a: w: e/ D# J                                                               
* q% D8 _' B  |' j8 @" J    解决方案:                                                               
/ I5 q7 ?5 m* {% d. b% Z& ?                                                                可使用原始SQL解决这一限制的语法。
- Y& D' X/ l- g. V$con = Propel::getConnection(SomePeer:ATABASE_NAME);$query = 'SELECT * FROM `table_a` JOIN `table_b` LIMIT 10';$stmt = $con->prepare($query);if($stmt->execute()      $res = $stmt->fetchAll();     var_dump($res);}注意#1:这种连接可能会变大,并很快耗尽允许的内存大小。这就是为什么我添加了一个LIMIT。7 P# \* @6 B# f2 P/ w4 x6 t
注意#2:输出不是很干净,包括数字键和相关键数组。也许有办法改善这一点。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则