[英]Making mysql query to tables based on the values from another table
我有以下查詢並且工作正常。 如果您看到查詢,您會注意到有一個名為$code
的變量,我曾經像這樣手動設置它的值$code="1001";
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="1001"
不僅適用於$code="1002"
, $code="1003"
。
為了實現我想要的,我必須更改上面的 mysql 查詢。但我不知道該怎么做,請你告訴我。
提前致謝:)
表名:accounts
code name
1001 Cash Account
1002 Advertising Expense
1003 Accounts Receivable
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.