我有一个存储人们订单的 MySQL 数据库。
订单可能包含:
- 门票(或没有门票),
- 质押类型ID(或没有质押类型ID)
一个订单可能只有一个额外的捐赠金额,没有票 (tickets.order_=order_id) 和没有承诺 (pledge_type_id)。它仍然应该显示...
问题:
但是,没有票证的订单(具有承诺类型 ID或承诺类型 ID=0 和附加捐赠=[某个数字])未显示。
如何修改此查询以返回这些行?
谢谢!
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
(它不允许 meto 上传数据(太大)所以这里是 db+data 的 sql: http: //cypgala.com/developer_notes/cypgala_experimental_db.sql(我用假名替换了真实姓名/电子邮件))