如何从sql数据库中的2个表中获取多列数据?

Posted

技术标签:

【中文标题】如何从sql数据库中的2个表中获取多列数据?【英文标题】:How to get data from multiple columns from 2 tables in sql database? 【发布时间】:2016-04-03 09:05:00 【问题描述】:

我有 2 个表名称,每个名称为 shipping_infos 和订单。我想从 2 个表中获取多个列。这两个表共享一个相同的列,即 user_id 列。我一直在尝试这段代码,但它仍然返回 null。应该怎么写?

 <?php
  include ('classes/functions.php');

 if(isset($_POST['user_id']))
 $user_id = $_POST['user_id'];
 $check_receipt = "select 
shipping_infos.shipping_name,shipping_infos.shipping_address,
shipping_infos.shipping_contact,shipping_infos.shipping_email,  
  orders.order_date,orders.trx_id,orders.tracking_num from
 shipping_infos inner join orders on shipping_infos.user_id = orders.user_id    
 where 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[2],
          'shipping_address'=>$row[3],
          'shipping_contact'=>$row[4],
          'shipping_email'=>$row[5],
          'order_date'=>$row[8],
          'trx_id'=>$row[1],
          'tracking_num'=>$row[2],            
));

    echo json_encode(array("result"=>$result));
 ?>

【问题讨论】:

gofr1 打败了我,现在我只需要补充一点,这段代码对于 SQL 注入是可行的。既然你已经在使用 mysqli,learn how to bind values. 【参考方案1】:

试试这个查询:

$check_receipt = "select  si.shipping_name,
        si.shipping_address,
        si.shipping_contact,
        si.shipping_email,
        o.order_date,
        o.trx_id,
        o.tracking_num 
from shipping_infos si
inner join orders o
    on si.user_id = o.user_id    
where si.user_id='".$user_id."';";

并在此处更改:

    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],            
));

【讨论】:

@CheongCharlene 我的荣幸!

以上是关于如何从sql数据库中的2个表中获取多列数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SQL Server 中包含多行数据的 2 个表中选择 4 个不同的值?

如何从 sql 中的 2 个表中按组聚合和计算平均值?

如何在SQL中显示3个不同表中的多列?

如何使用 pl/sql 中的游标将多列数据插入包含单列的表中?

从 2 个表中获取数据到 excel 表中

PL/SQL 仅使用游标将 2 个表中的数据检索到新表中