2009-02-07 4 views
0

У меня есть две таблицы, которые каким-то образом объединены. Я потратил последний час на поиски, не найдя никаких конкретных ответов, которые работали в моем случае.Отображение данных и подсчет из нескольких баз данных в MySQL

Дело в том, что таблица 1 называется Клиентами, а таблица 2 называется Проекты. Мне нужно указать все имена клиентов, а затем количество проектов, связанных с этим проектом и названием проекта.

Например:

Client 1 (2 проекта)
- Проект 1 Название
- Проект 2 Название

Клиент 2 (0 проектов)

Client 3 (1 проект)
- Project 1 title

Как это сделать, в простейшем d самый простой способ?

+0

Можете ли вы опубликовать схему таблиц? – Zoredache

+0

Таблица: клиент client.id - уникальный идентификатор client.name - имя клиента клиента * Таблица:. Проект project.id - уникальный идентификатор project.client - идентификатор клиента project.title - название проекта проект.* client.id и project.client должны соответствовать друг другу. –

ответ

0

В вашем запросе имеется в основном три части.

  1. Объединение таблиц
  2. Группировка вывод по проекту
  3. Подсчет проектов на клиента

Первый легко. Он включает поиск поля идентификатора клиента в каждой таблице и использование предложения JOIN, определяющего два столбца (по одному в каждой таблице) для корреляции. Это даст вам одну строку для каждого проекта, которая также содержит информацию для соответствующего клиента. Это почти то, о чем вы просите.

Трудно поставить второй и третий вместе в одном запросе, а не тот, который я бы рекомендовал. Если вы собираетесь помещать это в программу, вы можете легко выполнить обработку результата из запроса. Для этого вам нужно добавить предложение ORDER BY, чтобы указать сортировку по клиенту. Это поместит все проекты для каждого клиента в последующие строки.

Теперь вы можете написать цикл для обработки вывода. Как это делает, чтобы, он должен следить за двумя вещами:

  1. когда клиент ID изменяет
  2. считая проекты

Делая это, он может легко отображающих «заголовок» для каждый клиент и «нижний колонтитул группы» для количества проектов.

0

Вы ничего не говорите о своем приложении, но я бы рекомендовал отделить запрос от отображения. Пусть SQL получит данные для вас, а затем пусть что-то еще делает презентацию.

Смежные вопросы