Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как можно получить 0 count'ом / 7 сообщений из 7, страница 1 из 1
03.09.2004, 11:50
    #32679000
7andrey7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно получить 0 count'ом
Проблема такая. Есть две таблицы а и б. Записи таблицы б полем а_id ссылаются на записи таблицы а. Как выбрать все записи из а, с соответствующим им числом ссылок в таблице б. Причем должны выводится все записи из а, даже если в б нет ссылабщихся на эту запись, в этом случае должен выводится 0.
Есть вариант select а.id,count(*) from а,б where а.id=б.а_id group by а.id
Но беда в том, что при этом не выведутся записи из а, если на них нет ссылок в б. Вот такая вот беда.
...
Рейтинг: 0 / 0
03.09.2004, 11:53
    #32679013
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно получить 0 count'ом
Для этого существует left join
Код: plaintext
1.
select а.id,count(*) from а left join b on а.id=б.а_id group by а.id
...
Рейтинг: 0 / 0
03.09.2004, 11:59
    #32679036
7andrey7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно получить 0 count'ом
Спасибо большое!
...
Рейтинг: 0 / 0
13.09.2004, 11:58
    #32691488
serf2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно получить 0 count'ом
Подскажите пожалуйста, а как будет выглядить запрос если еще одна появится таблица, к примеру С. Та же задача, только с 3-мя таблицами.
...
Рейтинг: 0 / 0
13.09.2004, 12:09
    #32691514
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно получить 0 count'ом
Есчо один LEFT JOIN
Вроде - если не ошибаюсь - 30 таблиц таким макаром сджойнить можно...
...
Рейтинг: 0 / 0
13.09.2004, 12:29
    #32691570
serf2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно получить 0 count'ом
Это конечно понятно :)
А какой именно синтаксис?
Вот 2 запроса, как их вместе объеденить?
1. $sth=$dbh->prepare("select forums.id, forums.name, COUNT(topics.id_f), DATE_FORMAT(forums.last_data_db, '%d-%m-%Y %H:%i:%s') from forums left join topics on forums.id = topics.id_f group by forums.last_data_db ORDER BY forums.last_data_db DESC LIMIT $smesh, $limit");
2. $sth=$dbh->prepare("select COUNT(replies.id_f) from forums left join replies on forums.id = replies.id_f group by forums.last_data_db ORDER BY forums.last_data_db DESC LIMIT $smesh, $limit");
За ранее благодарен
...
Рейтинг: 0 / 0
13.09.2004, 14:37
    #32692008
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно получить 0 count'ом
serf2004Подскажите пожалуйста, а как будет выглядить запрос если еще одна появится таблица, к примеру С. Та же задача, только с 3-мя таблицами.

SELECT*
FROM (user LEFT JOIN phone ON user.id = phone.user_id) &
LEFT JOIN address ON user.id = address.user_id
WHERE user.id = 2;

Tables: user, phone, address
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как можно получить 0 count'ом / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]