SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.05.2011 03:51:46

st6125
Участник
Зарегистрирован: 29.05.2011
Сообщений: 4

как связать две таблицы?

как связать две таблицы?
Поле первой является ключевым в виде порядкового номера (таблица-рубрикатор),
а в поле другой (таблица компаний), которое является текстовым, через запятую перечисляются номера строк первой таблицы-рубрикатора  в таком виде (1,25,3568, и т.д.) к которым эти строки имеют отношение.
В итоге должен получиться отчет  в котором компании выводились бы в рубриках.

С уважением,

st6125

Неактивен

 

#2 29.05.2011 11:35:05

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: как связать две таблицы?

А зачем такое извращение 1,25,3568,  ? :-)
Порежьте эти текстовые поля, создайте нормальную таблицу связи.

Неактивен

 

#3 29.05.2011 22:43:58

st6125
Участник
Зарегистрирован: 29.05.2011
Сообщений: 4

Re: как связать две таблицы?

... так устроено egroupware, а мне нужно лишь отчетик, еслиб оно было  как вы говорите, я сделал бы все в аксесе.
Но факт, что данные построены именно так, поэтому, если ктото знает как разрулить, прошу помочь.
С уважением,
st6125

Неактивен

 

#4 30.05.2011 13:15:02

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: как связать две таблицы?

Для каждой строки первой таблицы прийдется подготовить (PREPARE) выражение,
а потом его уже выполнить. Одним запросом не получится никак.

Неактивен

 

#5 30.05.2011 20:58:41

st6125
Участник
Зарегистрирован: 29.05.2011
Сообщений: 4

Re: как связать две таблицы?

Пожалуйста, а можно ли поподробнее как в этом случае поступить.
А нельзя ли чтобы этот (PREPARE) накрулил бы по команде отдельную табличку, где все то, что Вы назвали (А зачем такое извращение 1,25,3568,  ? :-))м превратилось в  три столбика с 1- № записи 2- № фирмы 3- принадлежности фирмы к такой-то рубрике (т.е. разложило ячейку в которой записано цифрой через запятую принадлежность к рубрике на соответсвующее количество записей об этой фирме)?
Или может есть другой способ?
С уважением,
st6125

Неактивен

 

#6 31.05.2011 19:44:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: как связать две таблицы?

Можно, я не против smile Это называется «преобразоать данные к виду, в котором
можно работать». Это, собственно, Вам предложили изначально.

Неактивен

 

#7 03.06.2011 18:09:36

st6125
Участник
Зарегистрирован: 29.05.2011
Сообщений: 4

Re: как связать две таблицы?

а если кто в этом силен, запостите пожалуйста примерчик,
оказалось, что не силен я в таком (PREPARE)

С уважением,
st6125

Неактивен

 

#8 10.06.2011 01:41:35

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: как связать две таблицы?

Если ещё актуально, то вот вам решение.

table: t1

id  |    stam
------------
1   |    one
2   |     two
3   |    three
4   |    four
5   |     five

table: t2

pname
1,3,4,5
3,4
1,2,3
1,2
5

select t1.id,t2.pname from t2,t1 where CONCAT(',',t2.pname,',') LIKE CONCAT('%,',t1.id,',%');


id    pname
1    1,3,4,5
1    1,2,3
1    1,2
2    1,2,3
2    1,2
3    1,3,4,5
3    3,4
3    1,2,3
4    1,3,4,5
4    3,4
5    1,3,4,5
5    5

Отредактированно evgeny (10.06.2011 17:33:18)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson