powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / sql. многие-ко-многим
14 сообщений из 14, страница 1 из 1
sql. многие-ко-многим
    #36473906
super___man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день...
возникла проблема...
есть две таблицы вида table1.id, table1.name и table2.id, table2.name
третья соединяет первые две table3.id, table3.t1ID, table3t2ID
в принципе, вопрос только по третьей таблице
например:
t1ID t2ID1 11 21 32 22 33 1запрос
Код: plaintext
select t1ID, list(t2ID) from table3 group by t1ID
вернет:
t1ID t2ID1 1, 2, 32 2, 33 1

как создать запрос "выбрать * где t2ID = '2' и t2ID = '3'" (именно "и", с "или" все работает)
и получить либо:
t1ID t2ID1 1, 2, 32 2, 3

или хотя бы:
t1ID12

заранее спасибо за ответы...

Модератор: прочитай вот это: http://www.sql.ru/faq/faq_topic.aspx?fid=202
И вот это: http://www.sql.ru/forum/actualthread.aspx?tid=67261
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #36473919
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно в лоб:
Код: plaintext
1.
2.
3.
select t1ID, ' '||list(t2ID, ' ' order by t2ID)||' ' as ids
from table3
group by t1ID
having ids like '% 2 % 3 %'
а можно через пару времянок, для одного и второго t2ID получить список t1ID, а потом соединить его с оригинальной таблицей.
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #36474405
MichaelTim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Либо exist-ами
типа так
Код: plaintext
1.
2.
3.
select t1ID from table3 tt
where exists(select  1  from table3 where t1ID=tt.t1ID and t2ID= 2 )
and
exists(select  1  from table3 where t1ID=tt.t1ID and t2ID= 3 )
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #36474662
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если всегда только два значения, тогда можно так обернуть

Код: plaintext
1.
2.
3.
4.
5.
Select 
	t1.ID
from #tmp1 t1
	join #tmp3 t3 on t1.Id = t3.t1ID and t3.t2ID =  2 
	join #tmp3 t4 on t1.Id = t4.t1ID and t4.t2ID =  3 
group by  t1.id 
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #36478762
super___man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо...
воспользовался способом с exist
не всегда два значения... поэтому, с join не катит
в первом варианте:
у меня почему-то не ищется, если значения находятся рядом... наверное, дело все в
Код: plaintext
having ids like '% 2 % 3 %'
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #36478815
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
super___manв первом варианте:
у меня почему-то не ищется, если значения находятся рядом... наверное, дело все в
Код: plaintext
having ids like '% 2 % 3 %'
Дык а в чем же еще?
Впрочем это легко вылечить если понять как работает like :)
Код: plaintext
1.
2.
3.
select t1ID, ' '||list(t2ID, '  ' order by t2ID)||' ' as ids
from table3
group by t1ID
having ids like '% 2 % 3 %'
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
sql. многие-ко-многим
    #37950106
solonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,
Извини за беспокойство.
Можно ли соединить таблицы через like?
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #37950170
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Можно ли соединить таблицы через like?

Можно. Только такая фигня получится, что...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #37951823
solonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Если можно пример показать.
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #37952659
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select *
from tablea a
join tableb b on b.field1 like a.field1
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #37955151
solonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Ругается на a.field1 требует константу.
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #37955201
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Ругается на a.field1 требует константу.

Чего ? Какая версия ? ASE/ASA/IQ?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #37956990
solonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,
У меня база "HyTech"
...
Рейтинг: 0 / 0
sql. многие-ко-многим
    #37958398
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
solonovMasterZiv,
У меня база "HyTech"Ну а к нам тогда почему пришел?
прочитай вот этот топик: 10533930
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / sql. многие-ко-многим
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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