我有一个存储人们订单的MySQL数据库。
订单可能包含:
订单可能只有 additional_donation 金额 NO票证(tickets.order_ = order_id)和NO pledge(pledge_type_id)。它应该仍然显示......
然而,没有门票的订单(具有 pledge_type_id 或 pledge_type_id = 0且additional_donation = [某些数字] )< em>不显示。
如何修改此查询以返回这些行?
谢谢!
SELECT
o.order_id, o.name_f, o.name_l, o.email,
COUNT( * ) AS num_tix,
h.name_f, h.name_l,
o.additional_donation,
p.title, p.price,
o.donation_monthly_YN,
o.process_step,
o.paid_status_YNVRD
FROM orders o
LEFT JOIN tickets t ON t.order_id = o.order_id
LEFT JOIN HOSTS h ON h.host_id = o.host_id
LEFT JOIN pledge_types p ON p.pledge_type_id = o.pledge_type_id
WHERE o.gala_id = '1'
GROUP BY o.order_id
ORDER BY o.deleted_YN ASC , datetime_created DESC
这是一个小提琴:sqlfiddle.com /#!2 / 1ea71 / 1
(它不允许我上传数据(太大)所以这里是db +数据的sql:http://cypgala.com/developer_notes/cypgala_experimental_db.sql(我用虚假替换真实姓名/电子邮件))
答案 0 :(得分:0)
您可能在其中一个表(hosts或pledge_types)中没有该订单的相应元组。在这些桌子上尝试右边加入。