gpt4 book ai didi

php - JOIN 中重复的 SQL 结果 - Codeigniter

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

我正在尝试返回“clinicas”列表以及您的“telefones_clinicas”和“planos_clinicas”。我可以有多个“telefones_clinicas”和“planos_clinicas”,但这不是必需的。

但是,如果我有多个“telefones_clincias”或“planos_clinicas”,我的 sql 结果将返回重复的结果。我该如何解决这个问题?

这是我的表格:

表: 临床- Clomuns: id、autenticacao_email、autenticacao_id、cli_pag_id、descricao、foto、nome、qrcode、site、ativo、创建、修改

表: telefones_clinicas- Clomuns: id、tdc_dli_id、电话、创建、修改

表格: 普莱诺斯- 克洛蒙斯: id,普莱诺

表: planos_clinicas- 克洛蒙斯: Clinicas_id、planos_id

我在这个数据库中有更多表,但我不认为它们是问题所在。

在此链接中,您可以看到重复的返回:http://oakz.org/clinicas/clinicas/teste

我只有两个“诊所”。id 27 的“诊所”有两个“电话”和四个“平面”。ID 28 的“诊所”有一台“电话”和两台“平板电脑”。

我认为他们将 planos 的每个结果重复两次。

public function teste(){


$this->db->trans_start();

$this->db->select('clinicas.id AS id_clinica, nome, site, especialidade, descricao, foto, ativo, clinicas.created AS criacao_clinica, qrcode, cep, logradouro, complemento, numero, bairro, cidade, uf, telefone, planos.plano AS plano');
$this->db->from('clinicas');
$this->db->join('endereco_clinica', 'clinicas.id = endereco_clinica.ecs_cli_id');
$this->db->join('Especialidades_clinicas', 'clinicas.id = Especialidades_clinicas.edc_cli_id');
$this->db->join('especialidades', 'Especialidades_clinicas.edc_esp_id = especialidades.id');
$this->db->join('planos_clinicas', 'clinicas.id = planos_clinicas.clinicas_id');
$this->db->join('telefones_clinicas', 'clinicas.id = telefones_clinicas.tdc_cli_id');
$this->db->join('planos', 'planos.id = planos_clinicas.planos_id');
$this->db->order_by('id_clinica', 'ASC');
$clinicas = $this->db->get();


$xyz = 0;

foreach($clinicas->result() as $row){
$id_clinica = $row->id_clinica;
$nome = $row->nome;
$site = $row->site;
$especialidade =$row->especialidade;
$descricao = $row->descricao;
$foto = $row->foto;
$ativo = $row->ativo;
$criacao_clinica = $row->criacao_clinica;
$qrcode = $row->qrcode;
$cep = $row->cep;
$logradouro = $row->logradouro;
$complemento = $row->complemento;
$numero = $row->numero;
$bairro = $row->bairro;
$cidade = $row->cidade;
$uf = $row->uf;
$telefone = $row->telefone;
$plano = $row->plano;
$xyz++;
echo 'tô na rodada '.$xyz;
for($i = 0; $i <= count($plano); $i++) {
echo '<pre>',print_r($plano,1),'</pre>';
echo '----------------------------------------<br>';
echo '<pre>',print_r($row,1),'</pre>';
echo '----------------------------------------<br>';
}
}


$this->db->trans_complete();

}

最佳答案

您可以尝试使用 GROUP BY

 $this->db->group_by('clinicas.id'); 

关于php - JOIN 中重复的 SQL 结果 - Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39947817/

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