|
UNION неодинаковых таблиц
|
|||
---|---|---|---|
#18+
Прошу прощения, поскольку вопрос связан скорее не с SQLite, а с SQL вообще, но в данном конкретном случае мне необходимо реализовать это на SQLite, так что пишу сюда. Скорее всего, вопрос очень прост, но найти ответ я не смог. Прошу ткнуть носом в возможное решение. Есть две таблицы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Хочу их слить в одну таблицу с таким результатом: "john" "010113"11 1 "someTEXT1""mary" "020113"12 2 "someTEXT2""john" "030113"13null null"john" "040113"null 3 "someTEXT3""mary" "050113"14 4 "someTEXT4""john" "060113"15 5 "someTEXT5" UNION вроде как на несоответствие полей ругается... Как ещё можно попробовать сделать? Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 14:05 |
|
UNION неодинаковых таблиц
|
|||
---|---|---|---|
#18+
ну, так-то у тебя тут больше JOIN, чем UNION ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 14:14 |
|
UNION неодинаковых таблиц
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, прочитал http://www.sql.ru/forum/1010627/obedinenie-zapisey-iz-dvuh-tablic - там вроде неплохо про JOIN примеры представлены. Получается, что у меня будет выкинута либо строка 3 либо строка 4 реультирующей таблицы, либо, если использовать окончательный вариант по той же ссылке с аналогом LEFT OUTER JOIN - у меня будут поля name и textdate повторяться два раза в результирующей таблице два раза - в двух разных колонках. Это, конечно, тоже можно. И даже не смертельно - можно добавить пару полей перед первым столбцом и в них выводить через case name и textdate либо из первой либо из второй таблицы, но это ж объем запроса какой?! Может есть как-то проще вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 14:26 |
|
UNION неодинаковых таблиц
|
|||
---|---|---|---|
#18+
wsxedc83Добрый Э - Эх, прочитал http://www.sql.ru/forum/1010627/obedinenie-zapisey-iz-dvuh-tablic - там вроде неплохо про JOIN примеры представлены. Получается, что у меня будет выкинута либо строка 3 либо строка 4 реультирующей таблицы, Да. То что ты хочешь называется FULL OUTER JOIN и оно в SQLite не поддерживается. Самое простое решение - сделай третью таблицу с полями совпадающими с PK первых двух. Заполни ее всеми уникальными PK. А потом простой left join этой третьей таблицы с первыми двумя. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Все. Если не хочешь хранить полный набор ключей в t3 - объявляй ее временной таблицей. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 20:11 |
|
|
start [/forum/topic.php?fid=54&msg=38481597&tid=2008844]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 444ms |
0 / 0 |