php - 如何使用关系在 yii SQL 语句上创建别名?

标签 php mysql yii

我尝试在 Yii 上使用以下代码关联两个表:

$this->stocks= $stocks->find()->select(['id', 'type.name'])->joinWith('stockType type')->where(['fk_product' => $productId, 'fk_product_type' => 'type.id'])->all();

问题是:我想要股票 ID,但收到一条错误消息,指出 ID 不明确:

1052 Column 'id' in field list is ambiguous

那么,如何将表命名为 $stocks 或将其设为别名,以便消除歧义?

谢谢!

最佳答案

假设StocksModel$stocks的原型(prototype)类,您可以执行以下操作。

$socksTableName = StocksModel::tableName();

$this->stocks= StocksModel::find()
    ->select([$socksTableName . '.id', 'type.name'])
    ->joinWith('stockType type')
    ->where([
        'fk_product' => $productId,
        'fk_product_type' => 'type.id'
    ])
    ->all();

关于php - 如何使用关系在 yii SQL 语句上创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45881605/

相关文章:

自动完成文本字段 CJuiAutoComplete 小部件 yii 存储隐藏字段 id 和显示名称

javascript - Yii CGridView/CListView 在 AJAX 更新上调用 JavaScript 函数

php - SQL 检查行是否包含一组值

yii 创建一个没有 Assets 的干净应用程序

javascript - 如何隐藏多个具有相同 id 的 div?

php - Symfony - 从未导入注释

php - 如何在 CSS 中制作响应式表格

php - 通过 AJAX 请求从 MySQL 数据库获取大数据

mysql - 用my_global.h编译c代码,主要功能没问题,但没有别的

mysql - 过滤计数表查询