Как составить запрос в MySQL?

компьютеры MySQL данные

Есть 2 таблицы. В первой инфа о клиенте, во второй список заказов.
Нужно сделать выборку всех записей из первой таблицы + добавить колонку с кол-вом заказов от этого клиента (count).
Точка схождения таблиц ido второй таблицы = id клиента в первой таблице.

Примечание:
Учитывая, что пустые записи (без заказов) тоже нужны в выборке, сделал как предложил arebus, только без присоединения:

SELECT t1.*, (SELECT COUNT(*) FROM table2 AS t2 WHERE t2.ido=t1.id ) AS number_of_orders FROM table1 AS t1
Ответы:
Зависит от того, в каком виде должны быть выборка. Оптимальнее будет сделать две полные выборки, а затем циклами определить для каждого клиента количество заказов.
данных маловато, но как то так
select t1.id, t1.name, COUNT(*) AS qnt_order from
(select id,name from table1) AS t1 INNER JOIN
(select id from table2) AS t2 ON t1.id = t2.id
GROUP BY t1.id, t1.name
Для примера создал две такие таблицы:
create table clients (id INTEGER, description VARCHAR(255), PRIMARY KEY (id));
create table orders (id INTEGER, client_id INTEGER, description VARCHAR(255), PRIMARY KEY (id), KEY by_client (client_id));
cкорее где-то так, могут же быть клиенты не сделаввшие ни единого заказа.
select t1.*, t2.cnt
from table1 t1 LEFT outer join (select id, count(id) as cnt
                                            from table2
                                            group by id) t2
       on t1.id = t2.id
SELECT u.*, COUNT(o.*) AS Qnt_Ord
FROM table1 AS u, table2 AS o
WHERE u.id = o.ido
GROUP BY u.id


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.