加入两个mysql查询在一起
问题描述:
我有以下两个查询,我想在一个查询中获得。我尝试过,但无法实现,请你帮助我吗?加入两个mysql查询在一起
感谢提前:)
查询:1
" 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='1' AND account_code='1001')
OR (voucher_type='0' AND t_code='1001')
OR (voucher_type='0' AND account_code='1001')"
查询:2
"SELECT * FROM details
LEFT JOIN vouchers on details.voucher_no = vouchers.voucher_no
LEFT JOIN accounts on accounts.code = vouchers.account_code
WHERE (voucher_type='1' AND account_code='1001')
OR (voucher_type='0' AND t_code='1001')
OR (voucher_type='0' AND account_code='1001')"
我试了一下下,但我得到的说,我在错误的错误消息SQL语法。
$getData = $this->db->query("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='1' AND account_code='1001')
OR (voucher_type='0' AND t_code='1001')
OR (voucher_type='0' AND account_code='1001'), <<I just separated with a comma
SELECT * FROM details
LEFT JOIN vouchers on details.voucher_no = vouchers.voucher_no
LEFT JOIN accounts on accounts.code = vouchers.account_code
WHERE (voucher_type='1' AND account_code='1001')
OR (voucher_type='0' AND t_code='1001')
OR (voucher_type='0' AND account_code='1001')");
if($getData->num_rows() > 0)
return $getData->result_array();
else
return null;
}
答
与UNION连他们都
$getData = $this->db->query("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='1' AND account_code='1001')
OR (voucher_type='0' AND t_code='1001')
OR (voucher_type='0' AND account_code='1001')
UNION ALL
SELECT * FROM details
LEFT JOIN vouchers on details.voucher_no = vouchers.voucher_no
LEFT JOIN accounts on accounts.code = vouchers.account_code
WHERE (voucher_type='1' AND account_code='1001')
OR (voucher_type='0' AND t_code='1001')
OR (voucher_type='0' AND account_code='1001')");
+0
谢谢Cichy :) – 2012-04-07 16:53:03
你怎么想加入他们吗?你在谈论一个INNER JOIN吗?你想在哪个领域加入? – 2012-04-07 15:10:03
看起来你想要一个跨细节和优惠券的外连接。您可能可以重写为单个查询(例如'SELECT * FROM details,vouchers ...'),但如果没有,则始终会有UNION ALL。 – cmbuckley 2012-04-07 15:19:40