Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Привет! Как можно склеить таблицы ? Т.е. есть таблицы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Хочется одним запросом получить такое: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Спасибо заранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:00 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
А тебе всё равно, как строки из одной таблицы будут соотносится со строками из другой? Или есть притензии по этому поводу? ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:02 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Вообще, важно, да. Т.е. результат должен быть именно таким, как в примере. Но с удовольствием бы посмотрел, как сделать и без этого условия. Пока я вообще не знаю, с какой стороны подойти к этому запросу :( для удобства: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:09 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Кажется я начинаю догадываться, что соединение идет по индексам в значении колонки (цифрам). Но вот почему бы автору прямо об этом не сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:13 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
:) Это пример такой, значения полей могут быть произвольными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:17 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Как вариант (на твоих тестовых данных): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:17 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Владимор, ты волшебник!? Работает! Спасибо! Буду теперь понимать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:24 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
JorjeВладимор, ты волшебник!? Работает! Спасибо! Буду теперь понимать :) Я не волшебник, я только учусь (с) :) А про понимание - там такая логика заложена: У нас в таблицах нет явно заданного поля, по которому можно было бы их соеденить. Поэтому создадим это поле на момент выполнения запроса (это подзапросы для получения значений A_RN, B_RN, C_RN). Далее объеденим таблицы по этому полю. Кстати, в этом подходе есть скрытый камень, который можно обойти лишь в том случае, если в каждой из таблиц есть уникальное сочетание полей. Что бы увидеть эту граблю, попробуй добавить, к примеру, в таблицу "А" еще одно значение "A1" :) Ну как? Правда, результат немного не тот, что ты ожидал?! ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:33 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Кстати, чтобы работало на любых данных, видимо, нужно селекты, типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. заменить на: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Или я не прав ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:35 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
> Владимор outer можно не писать :) А вообще классный скрипт. К тому же в нем есть ответ на вопрос "как пронумеровать строки?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:37 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Да, вроде, нужно использовать oid и убрать в конце group by. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:41 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
JorjeКстати, чтобы работало на любых данных, видимо, нужно селекты, типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. заменить на: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Или я не прав ?Все так и есть. Это как раз то, о чем я тебя предостерегал в своем предыдушем ответе Однако, я бы таки заменил на вот такой вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:43 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
там order by :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:43 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
ZemA> Владимор outer можно не писать :)Эт я знаю, но пишу исключительно в эстетических целях - что бы всё было красиво ;) ZemAА вообще классный скрипт. К тому же в нем есть ответ на вопрос "как пронумеровать строки?"А вот с этим согласен на все 100% :) ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:45 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
JorjeДа, вроде, нужно использовать oid и убрать в конце group by. Про OID я уже отвечал - можно использовать только его, но лично мне больше по вкусу вариант с указанием и поля таблицы и OID-а. Что касается GROUP BY - то его там нет :) ТАм есть только ORDER BY - он добавлен опять же исключительно из эстетических соображений - что бы гарантированно обеспечить именно тот вид результата, который я желаю увидеть. Оно ведь сервер может вернуть резульата совершенно в произвольном порядке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:48 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Владимор Конев Однако, я бы таки заменил на вот такой вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. почему? oid'ы ведь не повторяются. а если пк комтозитный (полей эдак из 4), их ведь все в where придется писать :) помоему oid'a достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:51 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
ZemAпочему? oid'ы ведь не повторяются. а если пк комтозитный (полей эдак из 4), их ведь все в where придется писать :) помоему oid'a достаточно.Просто сравни результаты работы двух запросов. Вариант с сравнением только по OID привел автор вопроса. Заметь, насколько результат такого подхода отличается от того, что будет в случае выполнения вот такого запроса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:57 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
Владимор КоневОднако, я бы таки заменил на вот такой вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 14:14 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
возможно имелось в виду так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 14:21 |
|
||
|
Как можно склеить таблицы?
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat Владимор КоневОднако, я бы таки заменил на вот такой вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. это если Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 14:24 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33808858&tid=2006279]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 354ms |

| 0 / 0 |
