![](/img/trans.png)
[英]Have a left join where duplicates in the second table is involved - MYSQL
[英]Three table MySQL LEFT JOIN not returning rows where one table isn't involved
我有一个MySQL数据库,用于存储人们的订单 。
订单可能包含:
订单可能仅具有一个额外的 捐赠金额,即没有票据(tickets.order_ = order_id)和没有抵押(pledge_type_id) 。 它仍然应该显示...
但是, 没有票证的订单 (具有pledge_type_id或pledge_type_id = 0且Additional_donation = [some number] ) 不显示 。
如何修改此查询以返回那些行?
谢谢!
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 + data的sql: http : //cypgala.com/developer_notes/cypgala_experimental_db.sql (我用伪造的实名/电子邮件代替了))
您可能在那些表之一(主机或pledge_types)中没有对应于该顺序的元组。 在这些表上尝试RIGHT JOIN。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.