Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / sql. многие-ко-многим / 14 сообщений из 14, страница 1 из 1
17.02.2010, 01:19
    #36473906
super___man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
добрый день...
возникла проблема...
есть две таблицы вида 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
17.02.2010, 01:33
    #36473919
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
можно в лоб:
Код: 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
17.02.2010, 11:32
    #36474405
MichaelTim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
Либо 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
17.02.2010, 12:39
    #36474662
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
Если всегда только два значения, тогда можно так обернуть

Код: 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
18.02.2010, 21:59
    #36478762
super___man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
большое спасибо...
воспользовался способом с exist
не всегда два значения... поэтому, с join не катит
в первом варианте:
у меня почему-то не ищется, если значения находятся рядом... наверное, дело все в
Код: plaintext
having ids like '% 2 % 3 %'
...
Рейтинг: 0 / 0
18.02.2010, 22:55
    #36478815
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
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
Период между сообщениями больше года.
09.09.2012, 20:45
    #37950106
solonov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
White Owl,
Извини за беспокойство.
Можно ли соединить таблицы через like?
...
Рейтинг: 0 / 0
09.09.2012, 21:54
    #37950170
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql. многие-ко-многим
> Можно ли соединить таблицы через like?

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

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

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

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

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


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