Доброго времени суток! Использую СУБД MySQL в связке с PhpMyAdmin, при создании связей между таблицами появился вопрос: "Можно ли получить количество записей в других таблицах, связанных с некоторой записью используя лишь sql".
Предположим у нас три таблицы: Авторы, Книги и Журналы. Авторы-Книги (1:М), Авторы-Журналы (1:М). В таблице Авторы есть некий Иванов, с котором имеется 10 записей в таблице Журналы и 3 записи в таблице Книги.
Возможно ли получить количество связных записей с господином Ивановым? (их 13 = 10 журналов + 3 Книги)
При том что, количество таблиц не известно, результат необходимо получить с помощью языка SQL, без использования триггеров и т.п.
Шаблон:
SELECT main.id
, COUNT(DISTINCT slave1.id) count1
, COUNT(DISTINCT slave2.id) count2
/* , ... */
FROM main
/* some */ JOIN slave1 ON main.joinfield1 = slave1.joinfield1
/* some */ JOIN slave2 ON main.joinfield2 = slave1.joinfield2
/* ... */
Если нужно ещё и общее количество - то можно сложить соответствующие COUNT-ы. А если нужно только общее количество - лучше в подзапросах получить COUNT по каждой отдельной таблице в отдельном подзапросе, и только потом суммировать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
нужно,что бы добавлялись новые id продукта у определенного пользователя
Как можно добавить webapp-директорию (с особым значком) в проект IntelliJ IDEA, если это не было сделано путём выбора архетипа при создании проекта?