简体   繁体   English

将两个 mysql 查询连接在一起

[英]Joining two mysql queries together

I have the following two queries which I want to get in one query.我有以下两个查询,我想在一个查询中获得。 I tried but couldn't make it happen, would you please kindly help me?我试过了但无法实现,请你帮帮我好吗?

Thanks in Advance:)提前致谢:)

Query:1查询: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')"

Query:2查询: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')"

What I tried the following but I got an error message that says I have error in SQL syntax.我尝试了以下操作,但收到一条错误消息,提示我在 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;
}

Connect them with UNION ALL使用 UNION ALL 连接它们

 $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')");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM