PHP(SQL)选择名称,其中id=更多值
我有一个表匹配,其中包含id、日期、team1\u id、team2\u id 和包含id、名称和 我需要PHP或SQL代码来显示teamfrom表team的名称,其中team1_id和team2_id=team.id …实际上我有这样的东西:PHP(SQL)选择名称,其中id=更多值,php,mysql,sql,Php,Mysql,Sql,我有一个表匹配,其中包含id、日期、team1\u id、team2\u id 和包含id、名称和 我需要PHP或SQL代码来显示teamfrom表team的名称,其中team1_id和team2_id=team.id …实际上我有这样的东西: $deleteMatch = Database::query('SELECT match.id, match.team1_id, match.date, team.id, team.name FROM `match`, `team` WH
$deleteMatch = Database::query('SELECT match.id, match.team1_id, match.date,
team.id, team.name FROM `match`, `team` WHERE team.id = match.team1_id');
foreach($deleteMatch as $matchinfo)
{
?><option value="<?php echo $matchinfo["id"];?>">
<?php echo $matchinfo["date"]; echo $matchinfo["name"];?></option>
<?php
}
但我需要将team2.idname添加到foreach。日期|团队1名称|团队2名称
希望你能理解我。谢谢您的帮助。使用此查询:
SELECT match.id, match.team1_id, match.date,
t1.id as team1ID, t1.name as team1Name,
match.team2_id,t2.id as team2ID, t2.name as team2Name
FROM `match` JOIN `team` t1 ON t1.id = match.team1_id
JOIN `team` t2 ON t2.id = match.team2_id
.我将使用团队表上的两个内部联接来完成此操作:
$query = "SELECT match.*, team.* FROM match
INNER JOIN team ON match.team1_id = team.id
INNER JOIN team ON match.team2_id = team.id;"
该表应如下所示:
$deleteMatch = Database::query('SELECT match.id, match.team1_id, match.date,
team.id, team.name FROM `match`, `team` WHERE team.id = match.team1_id');
foreach($deleteMatch as $matchinfo)
{
?><option value="<?php echo $matchinfo["id"];?>">
<?php echo $matchinfo["date"]; echo $matchinfo["name"];?></option>
<?php
}
match.id | match.date | team1_team.name | team2_team.name您可以尝试以下SQL查询:
SELECT match.id, date, t1.name AS team1, t2.name AS team2
FROM match, team AS t1, team AS t2
WHERE team1_id=t1.id AND team2_id=t2.id
诀窍是您需要将每个团队id分别与其名称匹配,因此必须包含两次团队表。为了区分这两个表,您可以在AS关键字的帮助下使用别名。在示例中,I分别将表别名为t1和t2
生成的表将有4列:id匹配id、日期、团队1团队1的名称和团队2团队2的名称,因此您可以在php代码中使用$matchinfo[team1]和$matchinfo[team2]。抱歉,但匹配真的可以在同一团队之间进行吗?我猜你指的是或而不是和。