php - 如何编写选择查询以在 php MySQL 中使用外键和连接从 5 个表中获取数据?

标签 php html mysql

我创建了 6 个表。我想使用外键从所有 6 个表(A、B、C、D、E、F)中获取特定的 ID 数据。我试图单独获取数据。它工作正常。我可以合并 2 个表。但是如何组合 6 个表并编写单个查询来获取数据(使用连接)。

<?php
include 'db.php';

if(isset($_POST['submit'])){
	$email=$_POST['email'];
  echo $email;

	$sql="SELECT * FROM A WHERE emailaddress='$email'";
	$result=mysqli_query($conn,$sql);
    if($result->num_rows>0){
      while($row=mysqli_fetch_assoc($result)){
        $email=$row['emailaddress'];
        $user_id=$row['id'];
        echo '<br>';
      }
    }

  $sql1="SELECT groupid FROM C WHERE userid='$user_id'";
	$result1=mysqli_query($conn,$sql1);
    if($result1->num_rows>0){
      while($row=mysqli_fetch_assoc($result1)){
        $groupid=$row['groupid'];
        echo 'group id'.$groupid;
        echo '<br>';
      }
  }

  $sql2="SELECT policy_id FROM E WHERE groupid='$groupid'";
  $result2=mysqli_query($conn,$sql2);
    if($result2->num_rows>0){
      while($row=mysqli_fetch_assoc($result2)){
        $policyid=$row['policy_id'];
        echo 'policyid'.$policyid;
        echo '<br>';
      }
  }

  $sql3="SELECT page_id FROM F WHERE policyid='$policyid'";
  $result3=mysqli_query($conn,$sql3);
    if($result3->num_rows>0){
      while($row=mysqli_fetch_assoc($result3)){
        $pageid=$row['page_id'];
        echo 'page id'.$pageid;
        echo '<br>';
      }
  }

}

 ?>
<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

<form action="" method="POST">
	<input type="text" name="email">
	<input type="submit" name="submit">
</form>

</body>
</html>
我将提供一个电子邮件 ID。单击提交后,我需要使用单选查询从 6 个表中获取所有相关数据。

enter image description here

最佳答案

使用这个查询:

$sql =  "SELECT * FROM A INNER JOIN C ON A.id = C.userid INNER JOIN ON B ON B.id = C.groupid INNER JOIN E ON E.groupid = B.id INNER JOIN D ON D.policy_id = E.policy_id INNER JOIN F ON F.policyid = D.policy_id WHERE emailaddress = '$email' ";

关于php - 如何编写选择查询以在 php MySQL 中使用外键和连接从 5 个表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51036875/

相关文章:

html - 在 Win7 下的 Firefox 中打开 sans pixelated

html - 自动调整文本大小以适合图像容器

Mysql 同一列上的多个条件

php - 从 Python 访问 PHP 设置的内存缓存键

php - 从另一个 php 文件中检索变量

javascript - 如何在网站上集成 Skype 聊天

mysql - MySQL 查询中 EXPLAIN、count(1) 和表内容之间的差异

Mysql:在UPDATE查询的两个条件下切换int字段的值

php - 结构化 JSON 布局

php - Javascript calc 函数运行两次的问题