2016-04-05 2 views
-1

У меня есть таблица, как показано ниже, и я хотел бы получить продажи США и Франции по дате. Для этого сценария внутреннее соединение не работает.MySQL: почему внутреннее соединение работает, а не внешнее соединение в том же синтаксисе

Мой вопрос, почему inner join работы в запросе не outer join

запрос:

select * from 
(select * from country_sales where country ='US') a 
inner join 
(select * from country_sales where country ='FR') f 
on a.dateid = f.dateid 

Однако на использовании outer join, я получаю

Error Code: 1064. You have an error in your SQL syntax; 

вывод должен выглядеть следующим образом:

+0

Зачем вам нужен внутренний или внешнее соединение на всех? – ehh

+0

А также 'LEFT OUTER JOIN = LEFT JOIN' и' RIGHT OUTER JOIN = RIGHT JOIN' – 1000111

+0

Что такое 'Full Join'? – user4943236

ответ

1

Вы c частное использование GROUP BY вместе с CASE WHEN

SELECT 
dateid, 
MAX(CASE WHEN country = 'US' THEN amt ELSE 0 END) us_sales, 
MAX(CASE WHEN country = 'FR' THEN amt ELSE 0 END) fr_sales 
FROM country_sales 
GROUP BY dateid; 

Пожалуйста, проверьте DEMO HERE

Смежные вопросы