X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите с запросом 2
sc2r2bey
sc2r2bey
Topic Starter сообщение 6.5.2010, 21:15; Ответить: sc2r2bey
Сообщение #1


как посчитать количество строк в 2-х таблицах?
[php](SELECT COUNT(*)
FROM `photo`
LEFT JOIN `factory`
ON photo.id_factory=factory.id
LEFT JOIN `type`
ON photo.id_type=type.id
LEFT JOIN `style`
ON photo.id_style=style.id
WHERE photo.id_factory='$factory'
AND photo.published=1
AND type.published=1
AND style.published=1
AND factory.published=1)
UNION ALL
(SELECT COUNT(*)
FROM `other_photo`
LEFT JOIN `factory`
ON other_photo.id_factory=factory.id
LEFT JOIN `other`
ON other_photo.id_other=other.id
WHERE other_photo.id_factory='$factory'
AND other_photo.published=1
AND factory.published=1
AND other.published=1)
");
$posts = mysql_result($result,0);
echo $posts;[/php]
считает не правильно

выдает значение только 1-й таблицы, а надо, чтоб сумма была


--------------------
Заметки о разработке и не только
программирую web и для we
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BaCo
BaCo
сообщение 7.5.2010, 14:35; Ответить: BaCo
Сообщение #2


А почему нельзя так:
        $posts = mysql_result(SELECT COUNT(*) FROM `photo` LEFT JOIN `factory` ON photo.id_factory=factory.id LEFT JOIN `type` ON photo.id_type=type.id LEFT JOIN `style` ON photo.id_style=style.id WHERE photo.id_factory='$factory' AND photo.published=1 AND type.published=1 AND style.published=1 AND factory.published=1,0) + mysql_result(SELECT COUNT(*) FROM `other_photo` LEFT JOIN `factory` ON other_photo.id_factory=factory.id LEFT JOIN `other` ON other_photo.id_other=other.id WHERE other_photo.id_factory='$factory' AND other_photo.published=1 AND factory.published=1 AND other.published=1, 0);
        echo $posts;
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 7.5.2010, 15:10; Ответить: sc2r2bey
Сообщение #3


я нашел пока такое решение

$posts = mysql_result($result,0)+mysql_result($result,0);

хочется еще изящнее


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 8.5.2010, 20:28; Ответить: ZiTosS
Сообщение #4


sc2r2bey, а зачем такие объединения ты мне сначала объясни... Затем и запрос составим :(
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Osip_mw
Osip_mw
сообщение 31.7.2010, 8:50; Ответить: Osip_mw
Сообщение #5


Если нужно так как в 1м посте, то

$query = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS `count_photo`
FROM `photo`
LEFT JOIN `factory`
ON photo.id_factory=factory.id
LEFT JOIN `type`
ON photo.id_type=type.id
LEFT JOIN `style`
ON photo.id_style=style.id
WHERE photo.id_factory='$factory'
AND photo.published=1
AND type.published=1
AND style.published=1
AND factory.published=1)
UNION ALL
(SELECT COUNT(*) AS `count_other_photo`
FROM `other_photo`
LEFT JOIN `factory`
ON other_photo.id_factory=factory.id
LEFT JOIN `other`
ON other_photo.id_other=other.id
WHERE other_photo.id_factory='$factory'
AND other_photo.published=1
AND factory.published=1
AND other.published=1)"));

echo 'PHOTO: ' . $query['count_photo'] . '<br />' . 'OTHER_PHOTO: ' . $query['count_other_photo'];
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 5.8.2010, 18:58; Ответить: ZiTosS
Сообщение #6


sc2r2bey,
Если тебе только количество нужно, то зачем тебе такие сложные конструкции с LEFT JOIN, ведь они всё равно не будут учтены. Почитай что такое LEFT JOIN - Записи из правой таблицы будут примыкать к записям из левой таблице, там где найдут соответствие, записи же из левой таблицы не будут исключены по условию стыковки.

Если уж не нужны другие таблицы, то вот:
SELECT COUNT(*) as `count` FROM (SELECT `id` FROM `table1` UNION ALL SELECT `id` FROM `table2`) as `table`

Вытащит в поле COUNT все записи из двух таблиц. У тебя примерно тоже самое.


кстати, есть вариант - mysql_num_rows()

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 723 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1701 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2339 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12452 24.7.2020, 17:02
автор: -JamesSmips-
Открытая тема (нет новых ответов) Помогите с поиском доноров
3 tehno_music 3350 4.11.2019, 17:15
автор: goblin78


 



RSS Текстовая версия Сейчас: 17.4.2024, 1:45
Дизайн