首页 > 解决方案 > 如何在 mysql 中使用单个查询从两个表中获取数据

问题描述

我有两个表,包含以下列:

我想检索photo1, photo2from fixture_list, if team1并且team2在两个表上具有相同的值。

这是我到目前为止所尝试的:

<?php
 //checking if the script received a post request or not 
 if($_SERVER['REQUEST_METHOD']=='POST'){
     //Getting post data 
     $email=$_POST['email'];
     require_once('connect.php');
     $sql = "SELECT * FROM OneRecord, fixture_list
             WHERE OneRecord.email='$email', 
                   OneRecord.team1=fixture_list.team1_name 
             AND 
                   OneRecord.team2=fixture_list.team2_name";

     $res = mysqli_query($con,$sql);
     $result = array();

     while($row = mysqli_fetch_array($res)){
         array_push($result, array(
            'team1'=>$row[3],
            'team2'=>$row[4],
            'rs'=>$row[6],
            'team1_score'=>$row[7],
            'team1_wicket'=>$row[8],
            'team2_score'=>$row[10],
            'team2_wicket'=>$row[11],
            'tournament'=>$row[13]
         ));
     }
     echo json_encode (array("bets_list"=>$result));
     mysqli_close($con);

  }

 ?>

这是已编辑的问题

<?php
  //checking if the script received a post request or not 
  if($_SERVER['REQUEST_METHOD']=='POST'){

  //Getting post data 
   $email=$_POST['email'];

 require_once('connect.php'); 
 $sql = "SELECT f.team1_photo as "team1_photo",
 f.team2_photo as "team2_photo" FROM OneRecord o INNER JOIN fixture_list f 
 ON 
 o.team1=f.team1_name AND o.team2=f.team2_name WHERE o.email='$email'";

 $res = mysqli_query($con,$sql);
 $result = array();

 while($row = mysqli_fetch_array($res)){
  array_push($result,
  array('team1'=>$row[3],'team2'=>$row[4],
 'rs'=>$row[6],'team1_score'=>$row[7],'team1_wicket'=>$row[8],
 'team2_score'=>$row[10],
 'team2_wicket'=>$row[11],'tournament'=>$row[13],'photo1'=>$row[0],
 'photo2'=>$row[1],
  ));
    }
   echo json_encode (array("bets_list"=>$result));
  mysqli_close($con);

   }

   ?>

标签: phpmysql

解决方案


team1在和上对这两个表进行内部连接team2

SELECT f.photo1 as "photo1",f.photo2 as "photo2", 
FROM OneRecord o 
INNER JOIN fixture_list f
ON o.team1 = f.team1 and o.team2 = f.team2
where o.email = $email;

更新- 如果您想要所有列,请执行select * from ....


推荐阅读