У меня есть две таблицы, которые я пытаюсь завершить с полным внешним соединением.mysql external join not show null results
availability
availability_id availability_desc
1 Monday Morning
2 Monday Afternoon
3 Monday Evening
etc
user_availability
user_id availability_id
1 1
1 3
etc
SELECT * from availability a left outer join user_availability u
on a.availability_id=u.availability_id;
дает результат:
availability_id; availability_desc; id; user_id; availability_id
1; Monday Morning; 1; 1; 1
1; Monday Morning; 15; 2; 1
1; Monday Morning; 40; 4; 1
1; Monday Morning; 57; 5; 1
2; Monday Afternoon; 2; 1; 2
3; Monday Evening; 16; 2; 3
3; Monday Evening; 42; 4; 3
Право внешнее соединение на одних и тех же таблицах результатов в:
availability_id availability_desc id user_id availability_id
1 Monday Morning 1 1 1
2 Monday Afternoon 2 1 2
4 Tuesday Morning 3 1 4
Объединение правого и левого внешнего соединения дает следующие результаты:
availability_id availability_desc id user_id availability_id
1 Monday Morning 1 1 1
1 Monday Morning 15 2 1
1 Monday Morning 40 4 1
1 Monday Morning 57 5 1
2 Monday Afternoon 2 1 2
2 Monday Afternoon 30 3 2
2 Monday Afternoon 41 4 2
3 Monday Evening 16 2 3
3 Monday Evening 42 4 3
Я не ge tting любые нулевые значения, возвращаемые, когда в другой таблице нет соответствия. Я хочу сгенерировать результаты, которые выглядят примерно так:
availability_desc user_id
Monday Morning 1
Monday Afternoon 1
Monday Evening (null)
Не уверен, что я делаю неправильно.
Итак, вы хотите, чтобы показать запись для каждого пользователя для каждого номера, имеют ли они соответствующую запись или нет? – Tom
Учитывая ваши короткие данные образца, я получаю строку, возвращенную с нулевым user_id: http://sqlfiddle.com/#!2/e4be26/1 –
@MichaelBerkowski Интересно, что я не получаю то же самое, используя мою фактическую структуру таблицы и данные. [http://sqlfiddle.com/#!2/94713/1/0] – turtlepower