Как сделать одним SQL запросом???

Гость в Аксессе
Дата: 18.11.2009 15:15:12
заране благодарю за помощь.

есть две таблички вида:
table1
num names text
--- ------ -----
1 ivan; petr; alex good
7 ivan; petr bad
9 sergey black

и так далее, и table2, где перечислены все имена, встречающиеся в table1.names:
name
-------
ivan
petr
alex
sergey

необходимо получить результат вида:
num names text
--- ------ -----
1 ivan good
1 petr good
1 alex good
7 ivan bad
7 petr bad
9 sergey black
Гость в Аксессе
Дата: 18.11.2009 15:17:13
извиняюсь, форматирование подвело )
есть две таблички вида:
table1
num   names                text
---    ------                -----
1      ivan; petr; alex       good    
7      ivan; petr               bad
9      sergey                   black

и так далее, и table2, где перечислены все имена, встречающиеся в table1.names:
name
-------
ivan
petr
alex
sergey

необходимо получить результат вида:
num   names                text
---    ------                -----
1      ivan                    good 
1      petr                    good 
1      alex                    good 
7      ivan                    bad
7      petr                    bad
9     sergey                 black
так наверна
Дата: 18.11.2009 15:23:29
SELECT table1.num, table2.name, table1.text
FROM table1
INNER JOIN table2
  ON table1.names LIKE '*' + table2.name + '*'
qwrqwr
Дата: 18.11.2009 16:07:18
Гость в Аксессе, вторую табличку "где перечислены все имена, встречающиеся в table1.names" можно выкинуть :)
Зато вместо нее понадобится другая табличка Nums с единственным полем n = списку натуральных чисел от 1 до (максимальной длины строки в поле table1.names + 2).
Берите, вобщем, от 1 до 257 - не ошибетесь, если поле текст, а не Мемо.

Запрос такой:
SELECT First(T.num) AS num,
       First(T.txt) AS txt, 
       Trim(Mid(";" & T.names & ";", Max(N1.n+1), N2.n - Max(N1.n+1))) AS OneName
  FROM T, Nums AS N1, Nums AS N2
 WHERE N2.n > N1.n 
   AND N2.n <= Len(T.names)+2 
   AND Mid(";" & T.names & ";", N1.n, 1)=";" 
   AND Mid(";" & T.names & ";", N2.n, 1)=";"
 GROUP BY T.names, N2.n;
Гость в Аксессе
Дата: 18.11.2009 16:18:20
СПАСИБО!!!
Гость в Аксессе
Дата: 18.11.2009 16:22:22
qwrqwr
а нафига городить ТАКОЕ, если таблиц УЖЕ есть ик тому же во второй табличке есть не один столбецъ?
но спасибо за быструю помощь!!!!
qwrqwr
Дата: 18.11.2009 16:42:47
Гость в Аксессе, а я ничего и не городил - достал из закромов :) стандартное решение разгруппирования строки с разделителями (в данном случае ";") в столбец значений.
Только чуть подточил его под задачу - trim добавил и т.п.
во второй табличке есть не один столбецъ?
это не понял.

ЗЫ и как вы будете разделять строку типа "Иван;Иваныч;Иванов" вашей второй таблицей ?