2012-04-08 13 views
0

私は次のクエリを持っており、正常に動作しています。クエリが表示された場合、あなたは$codeという変数があることに気づくだろう、と私は手動でこの$code="1001";別のテーブルの値に基づいてテーブルにmysqlクエリを作成

function check1() { 

$code="1001"; 

$getData = $this->db->query("SELECT * FROM vouchers 
LEFT JOIN details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN accounts on accounts.code = vouchers.account_code 
WHERE (voucher_type='1' AND t_code=$code) 

UNION ALL 

SELECT * FROM vouchers 
LEFT JOIN details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN accounts on accounts.code = details.t_code 
WHERE (voucher_type='0' AND account_code=$code) 

"); 

     if($getData->num_rows() > 0) 
     return $getData->result_array(); 
     else 
     return null; 
} 

のようにその値を設定し、私は私のビューファイルに結果を表示したときに、私は次のスクリプトを使用するために使用します:

<?php if(count($records) > 0) { ?> 

    <?php $i = $this->uri->segment(3) + 0; foreach ($records as $row){ $i++; ?> 

    <?php echo $row['voucher_date']; ?> 
    <?php echo $row['name']; ?> 
    <?php echo $row['amount']; ?> <br> 

<?php } ?> 

<?php } else { echo "No Record Found";} ?> 

<?php 
$sum = 0; 
foreach ($records as $row) { 
$sum += str_replace(",", "", $row['amount']); 
} 
?> 

    Total: <?php echo number_format($sum, 2);?> 

は今、私が何をしたいのか、私は私のビューファイルに結果を表示したときに、それが表示されないように、次のMySQLテーブルから$codeの値を取得し、そのすべての値の結果を得ることです$code="1001"の結果だけですが、$code="1002"$code="1003"の結果も表示されます。

私が得たいものを達成するために、私は上記のmysqlクエリを変更する必要があります。しかし、私はそれを行う方法を理解していません。事前に

感謝:)

表名:

code name 
1001 Cash Account 
1002 Advertising Expense 
1003 Accounts Receivable 

答えて

0
SELECT * FROM vouchers 
LEFT JOIN details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN accounts on accounts.code = vouchers.account_code 
WHERE voucher_type='1' AND t_code IN (SELECT * FROM code_table) 

UNION ALL 

SELECT * FROM vouchers 
LEFT JOIN details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN accounts on accounts.code = details.t_code 
WHERE voucher_type='0' AND account_code IN (SELECT * FROM code_table) 
アカウント
関連する問題