gpt4 book ai didi

php - 访问冲突使用 Laravel 两次连接另一个表上的表

转载 作者:可可西里 更新时间:2023-11-01 08:05:54 26 4
gpt4 key购买 nike

所以我得到了一个名为 matches 的表,其中包含 2 个团队 ID,这些团队位于同一个名为 clans 的表中

matches

team1_id | team2_id

 2     |    4

1 | 2

4 | 1

Clans

ID | Name 

2 | abc

1 | cde

4 | efg

我的目标是当我在网页上打印它时,它会显示团队名称而不是他们的 ID。现在简单解释一下,我使用的是 laravel,代码如下:

    $unfinished = DB::table('matches')->where('team1_score', NULL)
->join('matches', 'matches.team1_id', '=', 'clans.id')
->join('matches', 'matches.team2_id', '=', 'clans.id')
->select('clans.clan_name as team1_name', 'clan_name as team2_name', 'matches.id'
)->get();

我需要将其全部存储在 $unfinished 中。自然地,这段代码不起作用,我想我明白为什么了。然而,我只是想不通,是如何解决这个问题,让它发挥作用。它吐出以下 exakt 错误:

SQLSTATE[42000]:语法错误或访问冲突:1066 不是唯一的表/别名:“匹配”(SQL:选择 clansclan_name as team1_name clan_name 作为team2_name比赛id锦标赛name from matches inner join tournaments on tournaments.id = 匹配.tournaments_id inner join matches on matches.team1_id = clans .id inner join matches on matches.team2_id = clans. id 其中 team1_score 为空)

最佳答案

使用别名:

$unfinished = DB::table('matches')->where('team1_score', NULL)
->join('clans AS clans1', 'matches.team1_id', '=', 'clans1.id')
->join('clans AS clans2', 'matches.team2_id', '=', 'clans2.id')
->select('clans1.clan_name as team1_name', 'clans2.clan_name as team2_name', 'matches.id'
)->get();

关于php - 访问冲突使用 Laravel 两次连接另一个表上的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466672/

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