[英]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.