2017-01-19 2 views
0

차고 용 주문 관리 도구와 같은 것을 만들려고합니다. 도구의 주요 기능은 수리 주문 및 검사 주문을 관리하는 것입니다. 따라서다음 세 테이블을 작성했습니다. 처음에는 자동차와 수리 및 검사 상태를 볼 수 있습니다. 두 번째 것은 단일 수리 명령에 대한 정보를 보여 주며 첫 번째와이 사이의 관계는 1 : n입니다. 마지막 테이블은 첫 번째 테이블에서 각 자동차에 대해 자동 생성 된 검사 명령을 보여줍니다. 이것은 1 : n 관계입니다. 그래서 내가하려고하는 것은 자동차에 대한 모든 수리 및 검사 주문을 하나의 테이블에 표시하는 것입니다. 그러나 열린 것만.여러 테이블에서 마지막으로 가져 오기

나는 어디에서 문장을 써 봤지만 완전히 혼란 스러웠다.

내 질문은 어떻게 실현할 수 있습니까?

+------+--------------------------+----------+------------+ 
| IDWZ | wz_name     | wz_stand | wz_vistand | 
+------+--------------------------+----------+------------+ 
| 1 | Querbr?cke vorn   |  0 |   0 | 
| 2 | Front Lateral Support |  0 |   1 | 
| 3 | Rear Support    |  1 |   1 | 
| 4 | MID-X-Member Upper Shell |  1 |   1 | 
| 5 | Front Lateral Support |  1 |   1 | 
+------+--------------------------+----------+------------+ 


    +---------+-----------------+--------------+ 
    | IDWZTBL | rep_wzrepstatus | rep_wzfehler | 
    +---------+-----------------+--------------+ 
    |  2 |    1 | REP 1  | 
    |  1 |    1 | REp2   | 
    |  1 |    1 | REp 3 MASS | 
    |  1 |    0 | 444   | 
    |  2 |    0 |    | 
    +---------+-----------------+--------------+ 

+--------+-------------+ 
| VIWZID | vi_repstand | 
+--------+-------------+ 
|  1 |   0 | 
+--------+-------------+ 
+0

이 질문은 매우 불분명합니다. 테이블이 서로 어떻게 관련되어 있는지를 말하는 것은 어렵습니다. 그러나 단지 열린 상태로 필터링하기 위해 WHERE 절을 사용하여 3 개의 테이블 모두를 조인하면된다. – Barmar

답변

0

Sry for that!

따라서 IDWZ는 두 번째 테이블 (IDWZTBL)과 세 번째 테이블 (VIWZID)의 외래 키입니다.

내가 두 번째 수리 주문에 첫 번째 테이블 자동차

SELECT wz_name, wz_stand, wz_vistand, rep_wzrepstatus, vi_repstand FROM tbl_wz LEFT JOIN tbl_orders ON tbl_wz.IDWZ = tbl_orders.IDWZTBL LEFT JOIN tbl_vi ON tbl_wz.IDWZ = tbl_vi.VIWZID WHERE wz_stand='0' AND rep_wzrepstatus='0' ... 

와 그것을 시도 staement (WHERE wz_stand = '0'과 rep_wzrepstatus의 = '0')가 잘 작동 곳.

하지만 세 번째 테이블 (VI)을 추가하려고하면 결과를 가져올 수 있습니다.

내가 개요 표에 표시하려는 것은 마지막으로 열었던 수리 주문과 마지막으로 열었던 검사 주문입니다.

관련 문제