2009-02-07 2 views
0

어떤 식 으로든 합쳐진 두 개의 테이블이 있습니다. 지난 1 시간 동안 인터넷 검색을했는데 제 경우와 같은 구체적인 답변을 찾지 못했습니다.데이터를 표시하고 MySQL의 여러 데이터베이스에서 계산하기

사례는 표 1을 클라이언트라고하고 표 2를 프로젝트라고합니다. 모든 클라이언트 이름을 나열하고 해당 프로젝트 및 프로젝트 제목과 관련된 프로젝트 수를 따라야합니다.

예를 들어

:

클라이언트 1 (2 프로젝트)
- 프로젝트 1 제목
- 프로젝트 2 제목

클라이언트 2 (0 프로젝트)

클라이언트 3 (1 개 프로젝트)
- 프로젝트 1 제목

가장 쉬운 방법은 가장 쉬운 방법?

+0

테이블 스키마를 게시 할 수 있습니까? – Zoredache

+0

테이블 : 클라이언트 client.id - 고유 식별자 client.name - 클라이언트 클라이언트의 이름 * 테이블 :. 프로젝트 project.id - 고유 식별자 project.client - 클라이언트 식별자 project.title - 프로젝트 제목 계획.* client.id와 project.client가 서로 일치해야합니다. –

답변

0

쿼리에는 기본적으로 세 부분이 있습니다. 첫 번째는 쉽게 클라이언트

당 프로젝트를 계산 프로젝트에 의해

  • 을 출력 그룹화 테이블
  • 가입

    1. . 여기에는 각 테이블에서 클라이언트 ID 필드를 찾고 관련이있는 두 개의 열 (각 테이블에 하나씩)을 지정하는 JOIN 절을 사용합니다. 이렇게하면 일치하는 클라이언트에 대한 정보가 포함 된 프로젝트 당 하나의 행이 제공됩니다. 이것은 당신이 요구하는 거의 것입니다.

      두 번째와 세 번째를 하나의 쿼리에 넣는 것이 좋습니다. 단 하나의 쿼리는 권장하지 않습니다. 이것을 프로그램에 넣으면 쿼리 결과를 쉽게 후 처리 할 수 ​​있습니다. 이렇게하려면 ORDER BY 절을 추가하여 클라이언트별로 정렬을 지정해야합니다. 그러면 각 클라이언트의 모든 프로젝트가 다음 행에 배치됩니다.

      이제 루프를 작성하여 출력을 처리 할 수 ​​있습니다.

      1. 클라이언트 ID가 이렇게 프로젝트

      를 계산

    2. 을 변경, 그것은 쉽게 "그룹 머리글"에 대한 표시 할 수 있습니다 : 그것은 수행에, 그것은 두 가지를 감시한다 각 클라이언트 및 프로젝트의 수를 나타내는 "그룹 바닥 글"을 제공합니다.

  • 0

    앱에 대해 아무 말도하지 않지만 검색어 표시를 표시하지 않는 것이 좋습니다. SQL이 당신을위한 데이터를 얻은 다음 다른 것을 발표하게하십시오.

    관련 문제