gpt4 book ai didi

php - Zend DB 仅选择 1 个具有多个连接的表

转载 作者:可可西里 更新时间:2023-11-01 07:18:31 25 4
gpt4 key购买 nike

我正在使用 Zend DB 通过以下代码生成查询:

$table->select()
->setIntegrityCheck(false) //required for multi-table join
->from('modules')
->joinInner(
'basket_modules',
'modules.id = basket_modules.id')
->joinInner(
'baskets',
'baskets.id = basket_modules.basket_id')
->where('baskets.id = ?', $this->id);

这会生成 SQL:

SELECT modules.*, basket_modules.*, baskets.*
FROM modules
INNER JOIN basket_modules ON modules.id = basket_modules.id
INNER JOIN baskets ON baskets.id = basket_modules.basket_id
WHERE (baskets.id = '3')

我的问题是 SELECT 部分,它选择所有 3 个表而不是我想要的模块。所以我想要生成的查询是:

SELECT `modules`.*
FROM `modules`
#etc...

我该怎么做?如果我手动编辑查询并运行它,它会返回我想要的内容,因此语法应该没有问题。

最佳答案

请看手册中的例子Zend_Db_Select .滚动到示例 #13。

To select no columns from a table, use an empty array for the list of columns. This usage works in the from() method too, but typically you want some columns from the primary table in your queries, whereas you might want no columns from a joined table.

$select = $db->select()
->from(array('p' => 'products'),
array('product_id', 'product_name'))
->join(array('l' => 'line_items'),
'p.product_id = l.product_id',
array() ); // empty list of columns

关于php - Zend DB 仅选择 1 个具有多个连接的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15947848/

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