我创建了 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>
最佳答案
使用这个查询:
$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/