gpt4 book ai didi

php - 在 Zend PHP Framework 中执行内部连接

转载 作者:行者123 更新时间:2023-11-28 23:28:20 25 4
gpt4 key购买 nike

我想对两个表执行内部连接。

表A-

项目编号

item_title

变量

表B-

项目编号

变化

一些变量

这就是我使用 RAW SQL 查询完成此操作的方式。

$sql = 'SELECT tableA.item_id, tableY.item_title AS Name, 5 * varX +  5 * count(*) AS myScore 
FROM tableA
INNER JOIN tableY ON tableA.item_id=tableY.item_id
WHERE someVar=\'8\'
GROUP BY item_id
ORDER BY myScore DESC
LIMIT 10';
$stmt = $this->_db->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll();

现在我想使用 Zend 查询来执行此操作。

这是我写的-

$data = $this->_db->select()
->from(array('tablA'=>'tableA'), array('item_id', 'item_title'), 'myScore'=>'(5*'tableA'.'varX') + 5*count(*)')
->joinInner(array('tablB'=>'tableB'), 'tablA'.'item_id' = 'tablB'.'item_id')
->where('someVar = 8')
->GROUP('item_id')
->order('myScore DESC')
->limit(10);

$dataResult = $this->_db->fetchAll($data);

但是我得到这个错误 -

 syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ',' or ')'

->from(array('tablA'=>'tableA'), array('item_id', 'item_title'), 'myScore'=>'(5'tableA' .'varX') + 5*count()')

我已经阅读了官方文档,但不确定在此处做什么,但仍然无法弄清楚。任何帮助表示赞赏!

最佳答案

在您的代码中以错误的方式使用了引号。此外, tt 似乎,您已经为 'myScore' 字段使用了不必要的第三个参数。它应该放在第二个参数中
尝试以下操作:

...
$data = $this->_db->select()
->from(array('tablA'=>'tableA'), array('item_id', 'item_title', 'myScore'=>'(5 * tableA.varX) + 5*count(*)'))
->joinInner(array('tablB'=>'tableB'), 'tablA.item_id = tablB.item_id')
->where('someVar = 8')
->group('tablA.item_id')
->order('myScore DESC')
->limit(10);

关于php - 在 Zend PHP Framework 中执行内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com