2016-04-18 8 views
-1

これは、情報と注文を発送している2つのテーブルからデータを取得した後に出てきたコードです。データの中には、product_idの1つがあります。後でproduct_idが3番目のテーブル名製品の主キーです。 3番目の表の製品からproduct_titleとproduct_priceを取得したいと考えています。私はどのように私のSQLを記述する必要がありますか?以下は、2つのテーブルからデータを取得するSQLを示しています。3テーブルのデータを結合するSQL文を書くにはどうすればいいですか?

<?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)); 
} 
?> 
+4

のように試してみてください!JOIN

で3つのテーブルを結合することができますか – HoneyBadger

+0

これは、表1と2がuser_idという同じ変数を共有し、3番目の表がuser_idを持たなかったのに対し、表2にもproduct_idがあるからです。 3つのテーブルを組み合わせることはできますか? –

+0

@CheongCharleneはいできます。私の下の答えを参照してください –

答えて

-1

あなただけの `残りの部分に第三のテーブルをjoin`ないのはなぜ

以下
<?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)); 
} 
+0

と3番目と2番目のテーブルに参加していただきありがとうございます。 –

関連する問題