У меня есть две таблицы Q
и A
,Выравнивание по левому краю получить все данные в обоих таблице
записи A
являются
QID UserID Value
1 100 A
2 100 B
3 100 C
1 101 AA
2 101 BB
3 101 CC
1 102 AAA
2 102 BBB
Как вы можете видеть, что нет записи для пользователя 102
для QID 3
. Есть еще одна таблица Q
.
QID Value
1 Name
2 Email
3 Site
То, что я хочу есть, для каждого пользователя, погода, они ответили на вопрос или нет (то есть, погоду записи выходов в A
таблицы или нет) Я хочу, чтобы все вопросы для всех пользователей и ответов на них. Что-то вроде этого.
QID QValue UserID Value
1 Name 100 A
2 Email 100 B
3 Site 100 C
1 Name 101 AA
2 Email 101 BB
3 Site 101 CC
1 Name 102 AAA
2 Email 102 BBB
Что проблема одна строка отсутствует желаемых результатов, и это
3 Site 102 NULL
Потому что для пользователя 102
нет записи в таблице A
. Я пробовал LEFT JOIN
, но, очевидно, он не даст желаемого результата, так как все левые таблицы уже есть. И INNER JOIN
тоже не работает.
Он также заполнить возможно ответы таблицы (таблица A
), чтобы иметь данные, как этот
QID QValue UserID Value
1 Name 100 A
2 Email 101 BB
3 Site 102 CCC
Say, все пользователи просто заполнили в одной записи, в этом случае желаемый результат что-то вроде этого
QID QValue UserID Value
1 Name 100 A
2 Email 100 NULL
3 Site 100 NULL
1 Name 101 NULL
2 Email 101 BB
3 Site 101 NULL
1 Name 102 NULL
2 Email 102 NULL
3 Email 102 CCC
Если у меня есть LEFT JOIN
на QID
, он не работает. Пожалуйста, предложите, что делать.
Что вы пробовали? Что вы подразумеваете под словом «Если я делаю LEFT JOIN на QID, это не работает»? Как насчет некоторых данных ddl и образцов? sqlfiddle.com - отличное место для начала. –
Загляните в CROSS JOIN без каких-либо условий, вы хотите ПЕРЕСЕЧИТЬ ПРИСОЕДИНЯЙТЕСЬ к своим Пользователям и вашим вопросам и присоединиться к своим ответам. – mxix