簡體   English   中英

子查詢聯接解決方案

[英]sub query solution for join

我有以下查詢,當我運行它時給我錯誤,

SELECT events.id AS id, SUM(tickets_sold.quantity)
FROM (`events`)
JOIN `category` AS cat ON `events`.`category_id` = `cat`.`id` 
JOIN `category` AS sub_cat ON `events`.`subCategoryID` = `sub_cat`.`id` 
JOIN `events_custom_dates` AS events_date ON `events_date`.`event_id` = `events`.`id`
JOIN `my_promos` ON `events`.id = `my_promos`.`event_id`
LEFT JOIN `mycalendar` ON `mycalendar`.`event_id` = `my_promos`.`event_id` 
LEFT JOIN `promo_events_stats` ON `promo_events_stats`.`id` = `events`.`id` 

JOIN `tickets_sold` ON  `my_promos`.`link_code` = `tickets_sold`.`code` 
WHERE `my_promos`.`user_id` = '532' AND DATE(my_promos.date) >= '2013-11-01' AND DATE(my_promos.date) <= '2014-01-22' 
GROUP BY my_promos.event_id

它給我

id   sum(tickets.sold)
some id    `2`
some id    `4`
some id   `14`

但它應該給

some id    `2`
some id    `4`
some id    `7`

當我從上述查詢中刪除以下行時,它為我提供了正確的數據

JOIN `events_custom_dates` AS events_date ON `events_date`.`event_id` = `events`.`id`

所以請告訴我我現在應該怎么做。event_id是唯一的外鍵,可以使它與事件表連接。

這是您需要的解決方案

SELECT events.id AS id,A.sold_tickets
FROM (`events`)
JOIN `category` AS cat ON `events`.`category_id` = `cat`.`id` 
JOIN `category` AS sub_cat ON `events`.`subCategoryID` = `sub_cat`.`id` 
JOIN `events_custom_dates` AS events_date ON `events_date`.`event_id` = `events`.`id`
JOIN `my_promos` ON `events`.id = `my_promos`.`event_id`
LEFT JOIN `mycalendar` ON `mycalendar`.`event_id` = `my_promos`.`event_id` 
LEFT JOIN `promo_events_stats` ON `promo_events_stats`.`id` = `events`.`id` 

LEFT JOIN (SELECT my_promos.event_id, SUM(tickets_sold.quantity) AS sold_tickets FROM my_promos
JOIN tickets_sold ON tickets_sold.code = my_promos.link_code
WHERE my_promos.user_id = '532' AND DATE(my_promos.date) >= '2013-11-01' AND DATE(my_promos.date) <= '2014-01-22' 
GROUP BY my_promos.event_id) A ON A.event_id = events.id

WHERE `my_promos`.`user_id` = '532' AND DATE(my_promos.date) >= '2013-11-01' AND DATE(my_promos.date) <= '2014-01-22' 
GROUP BY my_promos.event_id

是否

select * 
from events
join events_custom_dates as events_date on events_date.event_id = events.id;

給出您期望的結果? 我希望模式可能有問題,但是如果看不到它,那將是一團黑暗的事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM