Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Более одного поля в IN / 10 сообщений из 10, страница 1 из 1
23.04.2008, 20:51
    #35275592
startup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Подскажите, плиз, работает ли такая схема в informix?

SELECT n1, n2, n3
FROM tab1
WHERE (n1, n2) IN (SELECT m1, m2
FROM tab2);

У меня почему-то syntax error :(
...
Рейтинг: 0 / 0
24.04.2008, 00:05
    #35275803
TmpFile()
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Нет так делать нельзя.

В некоторых случаях можно воспользоваться ROW.
...
Рейтинг: 0 / 0
24.04.2008, 00:26
    #35275814
TmpFile()
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Хотела прикрепить скиншот документации, увы, что-то не рабатет.
...
Рейтинг: 0 / 0
24.04.2008, 02:25
    #35275871
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
startupПодскажите, плиз, работает ли такая схема в informix?

SELECT n1, n2, n3
FROM tab1
WHERE (n1, n2) IN (SELECT m1, m2
FROM tab2);

У меня почему-то syntax error :(

Нельзя, но можно заменить на
SELECT n1, n2, n3
FROM tab1
WHERE EXISTS (SELECT 1 FROM tab2
where tab1.n1 = tab2.m1 and tab1.n2 = tab2.m2)
...
Рейтинг: 0 / 0
24.04.2008, 02:26
    #35275872
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Выбегалло startupПодскажите, плиз, работает ли такая схема в informix?

SELECT n1, n2, n3
FROM tab1
WHERE (n1, n2) IN (SELECT m1, m2
FROM tab2);

У меня почему-то syntax error :(

Нельзя, но можно заменить на
SELECT n1, n2, n3
FROM tab1
WHERE EXISTS (SELECT 1 FROM tab2
where tab1.n1 = tab2.m1 and tab1.n2 = tab2.m2)

Что в свою очередь сокращается до банального
SELECT n1, n2, n3
FROM tab1, tab2
where tab1.n1 = tab2.m1 and tab1.n2 = tab2.m2
...
Рейтинг: 0 / 0
24.04.2008, 08:50
    #35275996
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Выбегалло

Что в свою очередь сокращается до банального
SELECT n1, n2, n3
FROM tab1, tab2
where tab1.n1 = tab2.m1 and tab1.n2 = tab2.m2Если в tab2 две строки на одну из tab1, то удвоится
...
Рейтинг: 0 / 0
24.04.2008, 08:56
    #35276004
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Журавлев Денис Выбегалло

Что в свою очередь сокращается до банального
SELECT n1, n2, n3
FROM tab1, tab2
where tab1.n1 = tab2.m1 and tab1.n2 = tab2.m2Если в tab2 две строки на одну из tab1, то удвоитсяА если в tab2 много строк на каждую из tab1, работать будет дольше чем EXISTS.
...
Рейтинг: 0 / 0
24.04.2008, 11:46
    #35276612
startup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Всем большое спасибо!!
...
Рейтинг: 0 / 0
24.04.2008, 15:30
    #35277622
Leonid Vorontsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Как вариант:

SELECT n1, n2, n3
FROM tab1
WHERE n1 || n2 IN ( SELECT m1 || m2 FROM tab2);
...
Рейтинг: 0 / 0
30.04.2008, 17:17
    #35289357
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Более одного поля в IN
Журавлев Денис Выбегалло

Что в свою очередь сокращается до банального
SELECT n1, n2, n3
FROM tab1, tab2
where tab1.n1 = tab2.m1 and tab1.n2 = tab2.m2Если в tab2 две строки на одну из tab1, то удвоитсяДля эквивалентности не хватает DISTINCT'а
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Более одного поля в IN / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]