Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » MySQL как выбрать 3 значения из разных таблиц?

Ответить
Настройки темы
MySQL как выбрать 3 значения из разных таблиц?

Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Народ, помогите выбрать из базы данных 3 значения из разных таблиц.
Мне нужно выбрать :
1) Количество фотографий
2) Количество товаров
3)Количество сообщений в гостевой книге.


Я это сделал так :
(SELECT count(idjp) FROM `jpg`) UNION (SELECT count(idsp) FROM `shop`) UNION (SELECT count(idgb) FROM `gb`)
И вроде даже работает, но... пока не появляются в выборке одинаковые значения. Например idjp=30 idsp=15 и idgb=15. Два первых значения выбираются правильно, а последнего вообще нет.
Пытался перестроить запрос типа :
SELECT count(idjp),count(idsp),count(idgb) FROM `jpg`,`shop`,`gb`
Результат вообще чушь непонятная....

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

Отправлено: 12:30, 28-07-2005

 

Аватара для dmitryst

Ветеран


Сообщения: 7250
Благодарности: 905

Профиль | Отправить PM | Цитировать


benya
Я бы выбирал значения по отдельности SELECT count(idjp) FROM 'jpg', SELECT count(idsp) FROM 'shop' и так далее...

-------
Осваиваю FreeBSD


Отправлено: 12:48, 28-07-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Так в первом случае и выбираются данные как бы в 3 запроса, только результат будет один "плоский". И если данные совпадают, то получается глюк какой-то. (как я описал выше).
Я принципиально не хочу выбирать значения отдельно.
Зачем делать что-то делать три раза, если данные можно получить одним запросом?? И системные ресурсы экономятся.

Отправлено: 13:36, 28-07-2005 | #3


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


benya
Не факт. Вы поглядите (используя EXPLAIN) что да как. У меня лично аналогичные мнению dmitryst мысли. Explain выдаст информацию о числе связей которые должен сделать движок и много чего еще полезного.
P.S. К тому же не стоит оптимизировать все и вся, хорошего в меру. Машины сейчас мощные, экономить на таких вещах при числе не большом числе (1000/сек) посетителей, думаю не целесообразно.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 13:52, 28-07-2005 | #4


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Select table1.value1, table2.value2, table3.value3 ......
сначала название таблицы, потом через (.) название нужного поля.

Отправлено: 16:10, 28-07-2005 | #5


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


На самом деле я уже нашел ответ на свой же вопрос.
Можно сделать так:
Код: Выделить весь код
SELECT count(DISTINCT idjp), count(DISTINCT idsp),count(DISTINCT idgb) FROM `jpg`, `shop`,`gb`
Так, все классно работает в одном запросе )
To: Prisoner
Конечно в чем-то ты прав, но.... Заместь 6 строк, мне бы пришлось написать 26...зачем???
Это все равно что заместь, к примеру такого кода:
Код: Выделить весь код
for ($i=0; $i<1000; $i++) {
$r[$i] = $i; 
}
написать
Код: Выделить весь код
$r[1] = 1; 
... #повторить 1000 раз
$r[1000] = 1000;
Работать будет и тот и другой пример. И второй при малой посещаемости будет работать не хуже первого... )

P.S. Всем спасибо за ответы )

Отправлено: 17:02, 28-07-2005 | #6



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » MySQL как выбрать 3 значения из разных таблиц?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MySQL - Хранение значения переменной в MySQL-базе ManHack Программирование и базы данных 7 11-07-2009 10:02
Redhat/Fedora - Как добавить поодержку таблиц Postgresql к Postfix menpavel Общий по Linux 2 08-08-2008 17:15
как включить нумерацию таблиц в word? clop1000 Хочу все знать 3 06-10-2007 12:21
MSFT SQL Server - Удалить данные из связанных таблиц. Как? ondo Программирование и базы данных 1 02-08-2007 05:10
mysql как лутше построить структуру таблиц в базе? E-mail Вебмастеру 24 25-04-2005 11:23




 
Переход