Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP(SQL)选择名称,其中id=更多值_Php_Mysql_Sql - Fatal编程技术网

PHP(SQL)选择名称,其中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

我有一个表匹配,其中包含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` 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]。

抱歉,但匹配真的可以在同一团队之间进行吗?我猜你指的是或而不是和。