Mysql 如何编写组合3个表数据的sql语句?
这是我从shipping infos和order这两个表中获取数据后编写的代码。在我得到的数据中,有一个是product_id,后面的product_id是第三个表名product的主键。从第三个产品表中,我想检索产品名称和产品价格。我应该如何编写sql?下面显示了从两个表检索数据的sqlMysql 如何编写组合3个表数据的sql语句?,mysql,Mysql,这是我从shipping infos和order这两个表中获取数据后编写的代码。在我得到的数据中,有一个是product_id,后面的product_id是第三个表名product的主键。从第三个产品表中,我想检索产品名称和产品价格。我应该如何编写sql?下面显示了从两个表检索数据的sql <?php include ('classes/functions.php'); if(isset($_POST['user_id'])){ $user_id = $_POST['user_id
<?php
include ('classes/functions.php');
if(isset($_POST['user_id'])){
$user_id = $_POST['user_id'];
$check_receipt = "select si.shipping_name,
si.shipping_address,
si.shipping_contact,
si.shipping_email,
o.order_date,
o.trx_id,
o.tracking_num,
o.quantity,
o.product_id
from shipping_infos si
inner join orders o
on si.user_id = o.user_id
where si.user_id='".$user_id."';";
$run_receipt_checking = mysqli_query($con, $check_receipt);
$result = array();
while($row = mysqli_fetch_array($run_receipt_checking)){
array_push($result,
array(
'shipping_name'=>$row[0],
'shipping_address'=>$row[1],
'shipping_contact'=>$row[2],
'shipping_email'=>$row[3],
'order_date'=>$row[4],
'trx_id'=>$row[5],
'tracking_num'=>$row[6],
'quantity'=>$row[7],
'product_id'=>$row[8]
));
}
echo json_encode(array("result"=>$result));
}
?>
您可以将三个表与联接组合起来
试试下面这样
<?php
include ('classes/functions.php');
if(isset($_POST['user_id'])){
$user_id = $_POST['user_id'];
$check_receipt = "select si.shipping_name,
si.shipping_address,
si.shipping_contact,
si.shipping_email,
o.order_date,
o.trx_id,
o.tracking_num,
o.quantity,
o.product_id
from shipping_infos si
inner join orders o
on si.user_id = o.user_id
inner join products p on p.product_id = o.product_id
where si.user_id='".$user_id."';";
$run_receipt_checking = mysqli_query($con, $check_receipt);
$result = array();
while($row = mysqli_fetch_array($run_receipt_checking)){
array_push($result,
array(
'shipping_name'=>$row[0],
'shipping_address'=>$row[1],
'shipping_contact'=>$row[2],
'shipping_email'=>$row[3],
'order_date'=>$row[4],
'trx_id'=>$row[5],
'tracking_num'=>$row[6],
'quantity'=>$row[7],
'product_id'=>$row[8]
));
}
echo json_encode(array("result"=>$result));
}
为什么不将第三个表与其他表连接起来呢?这是因为表1和表2共享同一个变量,即用户id,而第三个表没有用户id,而是有表2也有的产品id。我可以把这三张桌子和那个组合起来吗?@CheongCharlene是的,你可以。请参考下面我的建议answer@Cheong,使用产品id加入第三和第二个表