Reputation: 3
Model:
$this->db->where('payment_details.created_on >= ',$start_date);
$this->db->where('payment_details.created_on <= ',$end_date);
$this->db->where('receipt_details.created_on >= ',$start_date);
$this->db->where('receipt_details.created_on <= ',$end_date);
$this->db->select('payment_details.id,payment_details.payment_no,payment_details.site_id,payment_details.vendor_id,payment_details.work,payment_details.description,payment_details.date,payment_details.amount,payment_details.tax_type,payment_details.tax,payment_details.subtotal,payment_details.grand_total,payment_details.created_on,receipt_details.id,receipt_details.receipt_no,receipt_details.site_id,receipt_details.vendor_id,receipt_details.work,receipt_details.description,receipt_details.date,receipt_details.amount,receipt_details.tax_type,receipt_details.tax,receipt_details.subtotal,receipt_details.grand_total,receipt_details.created_on,vendor.id,vendor.vname,site.id,site.sname');
$this->db->from('payment_details');
$this->db->join('vendor','vendor.id=payment_details.vendor_id OR vendor.id=receipt_details.vendor_id','LEFT');
$this->db->join('site','site.id=payment_details.site_id OR site.id=receipt_details.site_id','LEFT');
return $this->db->get()->result();
I will try but there is error occur while running this query Error: Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LEFT JOIN vendor
ON vendor
.id
=payment_details
.vendor_id
OR vendor
.`i' at line 2
SELECT payment_details
.id
, payment_details
.payment_no
, payment_details
.site_id
, payment_details
.vendor_id
, payment_details
.work
, payment_details
.description
, payment_details
.date
, payment_details
.amount
, payment_details
.tax_type
, payment_details
.tax
, payment_details
.subtotal
, payment_details
.grand_total
, payment_details
.created_on
, receipt_details
.id
, receipt_details
.receipt_no
, receipt_details
.site_id
, receipt_details
.vendor_id
, receipt_details
.work
, receipt_details
.description
, receipt_details
.date
, receipt_details
.amount
, receipt_details
.tax_type
, receipt_details
.tax
, receipt_details
.subtotal
, receipt_details
.grand_total
, receipt_details
.created_on
, vendor
.id
, vendor
.vname
, site
.id
, site
.sname
LEFT JOIN vendor
ON vendor
.id
=payment_details
.vendor_id
OR vendor
.id
=receipt_details
.vendor_id
LEFT JOIN site
ON site
.id
=payment_details
.site_id
OR site
.id
=receipt_details
.site_id
WHERE payment_details
.created_on
>= '2018-05-01' AND payment_details
.created_on
<= '2018-05-31' AND receipt_details
.created_on
>= '2018-05-01' AND receipt_details
.created_on
<= '2018-05-31'
Filename: D:/xampp/htdocs/construct/system/database/DB_driver.php
Line Number: 691 Thanks in advance......
Upvotes: 0
Views: 597
Reputation: 9717
Hope this will help you : (not tested)
your query structure should be like this, do necessary changes providing you just hint
$sql = 'SELECT payment_details.id,payment_details.payment_no,payment_details.site_id,payment_details.vendor_id,payment_details.work,payment_details.description,payment_details.date,payment_details.amount,payment_details.tax_type,payment_details.tax,payment_details.subtotal,payment_details.grand_total,payment_details.created_on,receipt_details.id,receipt_details.receipt_no,receipt_details.site_id,receipt_details.vendor_id,receipt_details.work,receipt_details.description,receipt_details.date,receipt_details.amount,receipt_details.tax_type,receipt_details.tax,receipt_details.subtotal,receipt_details.grand_total,receipt_details.created_on,vendor.id,vendor.vname,site.id,site.sname
FROM payment_details
JOIN (vendor, receipt_details, site)
ON (vendor.id=payment_details.vendor_id OR vendor.id=receipt_details.vendor_id
AND site.id=payment_details.site_id OR site.id=receipt_details.site_id)';
$query = $this->db->query($sql);
return $query->result();
Upvotes: 0