Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Всё одним запросом (encyclop) 13/12/2001 - 14:18:45
      Re: Всё одним запросом (dim-dim) 13/12/2001 - 15:25:27
      Re: Таблица-связка - геморрой (encyclop) 13/12/2001 - 16:42:27
      Re: Таблица-связка (Василий) 13/12/2001 - 18:21:47
      Re: Таблица-связка - геморрой (dim-dim) 13/12/2001 - 23:41:40
      Re: Re:Всё одним запросом (???) 14/12/2001 - 12:27:18
      Re: 2dim-dim (Василий) 14/12/2001 - 13:33:48
      Re: А еще один пример? (Константин) 14/12/2001 - 13:53:46
      Re: А еще один пример? (Василий) 14/12/2001 - 15:13:44
      Re: 2 Василий (dim-dim) 14/12/2001 - 15:33:16
      Re: Re: Re: А еще один пример? (Константин) 15/12/2001 - 12:23:22
      Re: 2 dim : ОК, согласен :) (Василий) 17/12/2001 - 14:56:55
      Re: 2 Константин (Василий) 17/12/2001 - 15:11:47
      Re: 2 Василий (Константин) 18/12/2001 - 11:20:52
      Re: re (Василий) 18/12/2001 - 13:38:07
      Re: А еще один пример? (Maxim) 19/12/2001 - 01:49:30
      Re: А еще один пример? про миллион (Константин) 19/12/2001 - 07:54:58
      Re: 2 Maxim (Василий) 19/12/2001 - 13:58:35
      Re: 2 Константин (Василий) 19/12/2001 - 14:14:45
      Re: 2dim-dim (Именно это я хотел) 19/12/2001 - 20:25:39
      Re: 2dim-dim (А воз и ныне там) 19/12/2001 - 20:32:14

> Original message text:
> From: encyclop - 13/12/2001 - 14:18:45
> Subject:Всё одним запросом
> -----------------
> Есть две таблицы
>
> Первая
> texts (тексты - номер, название, сам текст, ссылка на id автора/авторов через запятую (вторая таблица))
>
> id | name | text | authors
>
> Вторая
> authors (авторы - номер, имя, фамилия)
>
> id | name | surname
>
> К этому делу SQL-запрос
> select * from texts, authors where authors.id in (texts.authors);
>
> Всё вроде бы OK, но если число авторов больше 1, то запрос берет только того, id которого стоит самым первым.
> Как быть, обойдясь ВСЕГО ОДНИМ запросом?
>


From: Василий - 18/12/2001 - 13:38:07
Subject:re
-----------------
а.
понятно. средствами MySQL этого не сделать, надо скрипт писать.
у меня для этого есть скриптик bash-евский (сделан под cygwin) - мож пригодится. в общем, ничего не стоит и на РНР подобный написать

запускать так
>bash script_file_path

он не слишком быстро работает, конечно, но как разовая операция - нормально

---------------- скрипт ---------------
# здесь писать параметры соединения
user='';
password='';
host='';
dbname='';
# имя искомого поля. в верхнем регистре писать!
sample='';

# получаем список таблиц
mysql -u$user -p$password -h$host -NB -e'show tables' $dbname > $$1
# количество строк в списке таблиц
n=`sed -n '$ =' $$1 | awk '{print$1}'`
i=1
echo "" > $$2
# по всем таблицам получаем имена полей, собираем в файл,
while [ $i -le $n ]; do
# получить имя текущей таблицы
str=`sed -n "$i p" $$1`
# собрать команду
echo "{print(\"$str\""', $1)}' > $$3
# чтоб было видно, сколько осталось
echo "table $i of $n"
mysql -u$user -p$password -h$host -NB -e"desc $str ;" $dbname |
awk -f $$3 >> $$2;
let i=$i+1;
done
# привести все к верхнему регистру
tr '[a-z]' '[A-Z]' < $$2 > $$4
echo "/ $sample/ p" > $$3
# вывести таблицу и имя поля
sed -n -f $$3 $$4 > tables
rm $$1
rm $$2
rm $$3
rm $$4
------------------- скрипт ----------------------


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
1261



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |