gpt4 book ai didi

php - 带左连接的 cakephp select 语句

转载 作者:行者123 更新时间:2023-11-30 22:36:04 24 4
gpt4 key购买 nike

我有两个表,分别是ServersApplicationsGroupsServers,其中server_idServers.id 的外键。

我正在尝试编写一个查询以从服务器表中选择一个名为 server_name 的字段,然后左连接 ApplicationsGroupsServers 表中的所有数据。

$option = array(
'join' => array(
'table' => 'Servers',
'alias' => 's',
'type' => 'left',
'conditions' => array( 's.id = ApplicationsGroupsServers.id' )
)
);
$apps = $this->ApplicationsGroupsServers->find('all', array(
"fields" => array('Servers.server_name'), ($option)
));
$this->set('applications', $apps);

但是,当我运行如下所示的查询时。我能够填充结果:

$apps = $this->ApplicationsGroupsServers->find('all', $option);

后端运行的SQL查询:

SELECT ApplicationsGroupsServers.id AS `ApplicationsGroupsServers__id`, 
ApplicationsGroupsServers.application_id AS `ApplicationsGroupsServers__application_id`,
ApplicationsGroupsServers.group_id AS `ApplicationsGroupsServers__group_id`,
ApplicationsGroupsServers.server_id AS `ApplicationsGroupsServers__server_id`
FROM applications_groups_servers ApplicationsGroupsServers
left JOIN Servers s ON s.id = ApplicationsGroupsServers.id

但是,我正在尝试运行这样的程序:

SELECT server_name
FROM applications_groups_servers
LEFT JOIN servers
ON servers.id = applications_groups_servers.server_id
LEFT JOIN groups ON groups.id = applications_groups_servers.group_id

最佳答案

您应该尝试在模型之间创建关系而不是使用join 查询,但如果您真的想使用join 查询:

$options = array(
'fields' => array(
'Server.name' // Server not Servers
),
'join' => array(
array(
'table' => 'servers',
'alias' => 'Server',
'type' => 'LEFT',
'conditions' => array(
'Server.id = ApplicationsGroupsServers.server_id',
)
),
array(
'table' => 'groups',
'alias' => 'Group',
'type' => 'LEFT',
'conditions' => array(
'Group.id = ApplicationsGroupsServers.group_id',
)
)
)
) ;

关于php - 带左连接的 cakephp select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32515108/

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