gpt4 book ai didi

mysql - 如何连接同一张表两次?

转载 作者:行者123 更新时间:2023-11-29 15:36:50 25 4
gpt4 key购买 nike

我需要连接同一个表两次,如何在 Codeigniter 中做到这一点?

table 比赛

<小时/>
  • match_id
  • team_home_id
  • team_away_id
  • score_home
  • 客场得分
  • group_id
  • round_id
  • 获胜者
  • 开始日期
  • 开始时间
<小时/>

表团队

<小时/>
  • team_id
  • 姓名
  • 代码

这是我必须加入的两个表。 table 队必须在一场 table 赛中参加两次。

$this->db->select('*')
->from('match, team')
->join('team AS team_a', 'match.team_home_id = team_a.team_id')
->join('team AS team_b', 'match.team_away_id = team_b.team_id')
->get()->result();

我的结果是比赛和其中一支球队:/

最佳答案

谢谢草莓的帮助。

在我的查询中,我总是得到最后加入的团队,因为它看起来像 Codeigniter 覆盖了具有相同名称的列, team_a.name 和 team_a.code 在最终的 result_array() 中表示为数组键“name”并且“代码”与 team_b.name 和 team_b.code 相同。

因此,我需要的不仅仅是表的别名,还需要为列添加别名:

    $this->db->select('tips.stake, tips.odd, 
matches.score_home, matches.score_away, matches.winner, matches.start_date, matches.start_time,
team_home.name AS team_home_name, team_home.code AS team_home_code, team_away.name AS team_away_name, team_away.code AS team_away_code');

$this->db->from('tips');
$this->db->join('matches', 'matches.match_id = tips.match_id');
$this->db->join('`teams` `team_home`', 'team_home.team_id = matches.team_home_id');
$this->db->join('`teams` `team_away`', 'team_away.team_id = matches.team_away_id');

$query = $this->db->get();

关于mysql - 如何连接同一张表两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58159524/

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