![]() |
|
Модераторы: skyboy |
![]()
|
|
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Имеется два запроса к одной таблице:
SELECT nomer_s-1 FROM `test` WHERE (nomer_s-1 NOT IN (SELECT nomer_s FROM `test`)) SELECT nomer_s+1 FROM `test` WHERE (nomer_s+1 NOT IN (SELECT nomer_s FROM `test`) AND nomer_s+1<10000); Они возвращают числа. Как объединить результаты запроса в одну таблицу из двух колонок, чтобы потом можно было для каждой строки результирующей таблицы сделать конкатенацию и получить уже третий столбец как результат? То есть, просто справа от результатов первой добавляем результаты второй в каждой строке. JOIN с подзапросом что-то не срабатывает. -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Т.е. надо найти такой номер, что у него нет "соседей", и он меньше 9999, верно?
Добавлено @ 21:36 если да, то
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Тут более сложная ситуация, это по смыслу часть большего запроса.
Первый выдаёт нужные числа с некоторыми условиями, второй также нужные числа с другими условиями, а потом надо объединить полученные результаты в строку + возможно, придётся добавить ещё несколько строк к результату. У вас пример с join - если бы таблица существовала, то это было бы легче, а тут таблица является результатом запроса. По сути должно быть что-то типа
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Какой вопрос - такой ответ. Мой запрос решает поставленнную в инит-посте задачу? решает... интересует на самом деле что-то другое? ну так и спрашивайте что интересует...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
В общем виде интересовало, как объединить в 2 колонки результаты 2 запросов, для которых нет отдельных таблиц.
Попробовал с помощью CREATE TEMPORARY TABLE, а потом JOIN. Не совсем то, что нужно было, но насколько-то помогло. В принципе уже не очень актуально, но на будущее... -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Если в запросах есть поле, которое можно использовать для установления однозначного соответствия - нет проблем. Скажем, с твоими запросами это будет
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Спасибо. А если такого поля нет? Просто есть 2 результата запроса, и надо второй столбец приставить к первому.
Например: Первый селект выдает 1 2 3 Второй - 4 5 6 И получаем: 1 4 2 5 3 6 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Обоснуйте, почему были объединены в одной записи значения 1 и 4. А не, например, 1 и 5... При ответе помните, что понятий номера записи и порядка записей без явного указания сортировки - не существует. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Должны объединяться записи в том порядке, как они идут в результатах запросов, а они там идут по возрастанию.
То есть, первое с первым, второе со вторым и т.п. -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Значит, в запросах следует ввести дополнительное расчётное поле номера записи, и выполнять связывание по нему.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |