gpt4 book ai didi

mysql - leftJoin 仅返回第一个表中的列

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

代码在 EventUserTypes 模型中

$this->find()
->select(['event_usertypes.user_type_id' , 'usertypes.name'])
->leftJoin('usertypes' , 'event_usertypes.user_type_id = usertypes.id')
->where(['event_usertypes.event_id'=>$event_id])
->all()

除了只返回第一个表的列外没有错误而不是连接表。已经 2 个小时了,在出了什么问题上浪费了太多精力?有什么想法吗?

如果我选择 * 然后它返回第一个表的所有列

如果这样做

select(['event_usertypes.user_type_id' , 'usertypes.name'])

它只返回 event_usertypes.user_type_id 而不是连接表中的名称

请帮帮我

最佳答案

尝试直接进行数据库查询,以确保 usertypes 表在您的查询结果中可用:

$query = new \yii\db\Query;
$query->select(['e.user_type_id', 'u.name'])
->from('event_usertypes e')
->leftJoin('usertypes u', 'e.user_type_id = u.id')
->where(['e.event_id'=> $event_id]);
$command = $query->createCommand();
$resp = $command->queryAll();

看看this SO question这和你的很相似。这里还有一个链接到 Yii documentation ,以防万一这可能有所帮助。

关于mysql - leftJoin 仅返回第一个表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31511264/

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