简体   繁体   English

三表MySQL LEFT JOIN不返回不涉及一个表的行

[英]Three table MySQL LEFT JOIN not returning rows where one table isn't involved

I have a MySQL database that stores people's orders . 我有一个MySQL数据库,用于存储人们的订单

orders may contain: 订单可能包含:

  • tickets (or no tickets), 票(或没有票),
  • pledge_type_id (or no pledge_type_id) pledge_type_id(或没有pledge_type_id)

An order may have just an additional_donation amount an NO tickets (tickets.order_=order_id) and NO pledge (pledge_type_id) . 订单可能仅具有一个额外的 捐赠金额,即没有票据(tickets.order_ = order_id)和没有抵押(pledge_type_id) It should still display... 它仍然应该显示...

THE PROBLEM: 问题:

However, orders with no tickets (that have either a pledge_type_id or pledge_type_id=0 and additional_donation=[some number] ) are not displaying . 但是, 没有票证的订单 (具有pledge_type_idpledge_type_id = 0且Additional_donation = [some number]不显示

How can I modify this query to return those rows? 如何修改此查询以返回那些行?

Thanks! 谢谢!

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 

Here's a fiddle: sqlfiddle.com/#!2/1ea71/1 这是一个小提琴:sqlfiddle.com/#!2/1ea71/1

(It won't allow meto upload data (too big) so here's the sql for the db+data: http://cypgala.com/developer_notes/cypgala_experimental_db.sql (I replaced real names/emails w/fakes)) (它不允许我上传数据(太大),因此这是db + data的sql: http : //cypgala.com/developer_notes/cypgala_experimental_db.sql (我用伪造的实名/电子邮件代替了))

You probably don't have in one of those tables (hosts or pledge_types) a corresponding tuple for that order. 您可能在那些表之一(主机或pledge_types)中没有对应于该顺序的元组。 Try RIGHT JOIN on those tables. 在这些表上尝试RIGHT JOIN。

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

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