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




MySQL.RU - Webboard



Вернуться
выборка из нескольких таблиц (tradakad) 19/11/2004 - 11:05:46
      Re: выборка из нескольких таблиц (Lev) 19/11/2004 - 11:34:38
      Re: выборка из нескольких таблиц (tradakad) 19/11/2004 - 18:07:21
      Re: выборка из нескольких таблиц (Lev) 19/11/2004 - 20:27:36
      Re: выборка из нескольких таблиц (maXmo) 20/11/2004 - 22:05:25

> Original message text:
> From: tradakad - 19/11/2004 - 11:05:46
> Subject:выборка из нескольких таблиц
> -----------------
> Приветствую! Есть несколько таблиц с одинаковой структурой но с разными именами. в них есть поле ceh (ключевое поле примари кей у всех одинаковое - id) делаю нечто такое select ceh from rn092003 group by ceh order by ceh;
> получаю ессно
> +------+
> | ceh |
> +------+
> | 01 |
> | 02 |
> | 03 |
> | 04 |
> | 06 |
> | 09 |
> | 15 |
> | 16 |
> +------+
> 8 rows in set (0.00 sec)
> но пытаясь сделать
> select ceh from rn092003,rn102003 group by ceh order by ceh;
> получаю
> ERROR 1052 (23000): Column 'ceh' in field list is ambiguous
> почему то неоднозначно... Подскажите плиз как выбрать ceh в данном примере?
> Можно конечно через временную таблицу, но мне кажется должен быть какой то другой путь... В документации этого не увидел.. Спасибо!
>


From: tradakad - 19/11/2004 - 18:07:21
Subject:выборка из нескольких таблиц
-----------------
1) Спасибо огромное!
2) ПОнятно :)
3) Да вроде Вы и так подробно ответили! Я понл в каком направлении двигаться. и результат нисколько не будет странноватым. к примеру в zp092003 есть 01,02,04,06,09 цеха, а в zp102003 - 01,03,04,15,16 тогда в результате получим
mysql> select t1.z_ceh from zp092003 t1,zp102003 group by t1.z_ceh order by t1.z_ceh;
+-------+
| z_ceh |
+-------+
| 01 |
| 02 |
| 03 |
| 04 |
| 06 |
| 09 |
| 15 |
| 16 |
+-------+
8 rows in set (0.48 sec)
что вобщем то и нужно. но теперь далее. хочу узнать кол-во повторений каждого цеха. пишу
mysql> select t1.z_ceh,count(t1.z_ceh) from zp092003 t1 group by t1.z_ceh order by t1.z_ceh;
+-------+-----------------+
| z_ceh | count(t1.z_ceh) |
+-------+-----------------+
| 01 | 110 |
| 02 | 135 |
| 03 | 159 |
| 04 | 12 |
| 06 | 24 |
| 09 | 52 |
| 15 | 170 |
| 16 | 196 |
+-------+-----------------+
8 rows in set (0.00 sec)
что понятно, но пытаясь написать
mysql> select t1.z_ceh,count(t1.z_ceh) from zp092003 t1,zp102003 group by t1.z_ceh order by t1.z_ceh
+-------+-----------------+
| z_ceh | count(t1.z_ceh) |
+-------+-----------------+
| 01 | 95150 |
| 02 | 116775 |
| 03 | 137535 |
| 04 | 10380 |
| 06 | 20760 |
| 09 | 44980 |
| 15 | 147050 |
| 16 | 169540 |
+-------+-----------------+
8 rows in set (0.66 sec)
что неправильно так очень много потому что в
mysql> select t1.z_ceh,count(t1.z_ceh) from zp102003 t1 group by t1.z_ceh order by t1.z_ceh;
+-------+-----------------+
| z_ceh | count(t1.z_ceh) |
+-------+-----------------+
| 01 | 123 |
| 02 | 129 |
| 03 | 151 |
| 04 | 10 |
| 06 | 28 |
| 09 | 57 |
| 15 | 155 |
| 16 | 212 |
+-------+-----------------+
8 rows in set (0.01 sec)

Как бы это посчитать? подозреваю что нужно рыть в INNER JOIN...
Или просто посчитать кол-во строк
mysql> select count(id) from zp092003;
+-----------+
| count(id) |
+-----------+
| 858 |
+-----------+
1 row in set (0.02 sec)

mysql> select count(id) from zp102003;
+-----------+
| count(id) |
+-----------+
| 865 |
+-----------+
1 row in set (0.00 sec)
а вот пробую
mysql> select count(zp092003.id) from zp102003,zp092003;
+--------------------+
| count(zp092003.id) |
+--------------------+
| 742170 |
+--------------------+
1 row in set (0.00 sec)
т.е. 742170=858*865 мда... Объясните плз. Спасибо!


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

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

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



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