За последние 24 часа нас посетили 17564 программиста и 1724 робота. Сейчас ищут 1609 программистов ...

Проблема с запросом из двух таблиц

Тема в разделе "PHP и базы данных", создана пользователем Max, 4 июн 2006.

  1. Max

    Max Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Lviv UA
    Здраствуйте.
    У меня есть две таблици:
    users - id,login,pass,reg_date
    images - id,user_id,name,add_date,file_name
    связь users<->images один ко многим

    как можно выбрать в одном запросе все поля из users + количество записей из images для каждого user_id?

    есть вариант добавить в таблицу users поле images_number, и обновлять его при каждом внесении записи в images, но ведь нужную виборку можно осуществить и без дополнительного поля.

    подскажите пожалуста как.
     
  2. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. SELECT a.*, COUNT(b.id) AS count_images FROM users AS a LEFT JOIN images AS b ON a.id=b.user_id GROUP BY b.user_id ORDER BY a.id ASC
    PS: иногда 2 простых запроса отрабатывают быстрее, чем один сложный...
     
  3. Max

    Max Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Lviv UA
    simpson спасибо!
     
  4. Max

    Max Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Lviv UA
    возможно, а для большого проекта и дополнительное поле было бы ещо быстрее, но в моем случае проект маленький и производительность не главное, а я вот уже более полгода програмирую на пхп и все никак не пойму как работаю все эти JOIN, мне надо где-то попробовать их работу на практике.

    у меня возник ещо вопрос, но я подумал - для нового вопроса лучше создать новый топик - simpson please welcome to http://php.ru/forum/viewtopic.php?t=685 :wink: