|----------------------------|
| Tbl_1 |
|--------------|-------------|
| id | name_1 |
|--------------|-------------|
| 1 | t_1_rec_1 |
|--------------|-------------|
|------------------------------------------------------------|
| Tbl_2 |
|-------|--------------|-----------|------------|------------|
| id | name_2 | tbl_1_id | tbl_3_id | tbl_4_id |
|-------|--------------|-----------|------------|------------|
| 1 | t_2_rec_1 | 1 | 1 | 2 |
| 2 | t_2_rec_2 | 1 | 2 | 1 |
|-------|--------------|-----------|------------|------------|
|------------------------|
| Tbl_3 |
|----------|-------------|
| id | name_3 |
|----------|-------------|
| 1 | t_3_rec_1 |
| 2 | t_3_rec_2 |
|----------|-------------|
|----------------------|
| Tbl_4 |
|--------|-------------|
| id | name_4 |
|--------|-------------|
| 1 | t_4_rec_1 |
| 2 | t_4_rec_2 |
|--------|-------------|
|--------------------------------------------|
| Tbl_5 |
|------|------------|------------|-----------|
| id | name_5 | tbl_2_id | tbl_6_id |
|------|------------|------------|-----------|
| 1 | t_5_rec_1 | 1 | 1 |
| 2 | t_5_rec_2 | 1 | 2 |
|------|------------|------------|-----------|
|----------------------------------|
| Tbl_6 |
|-------|------------|
| id | name_6 |
|-------|------------|
| 1 | t_6_rec_1 |
| 2 | t_6_rec_2 |
|-------|------------|
나는이 결과를 기대하고 존재하지 않을 때 기록을 반환하지 조인 왼쪽에 조인내부는 왼쪽에 합류 기록
t1.name_1 t2.name_2 t3.name_3 t4.name_4 t5.name_5 t6.name_6
t_1_rec_1 t_2_rec_1 t_3_rec_1 t_4_rec_2 t_5_rec_1 t_6_rec_1
t_1_rec_1 t_2_rec_1 t_3_rec_1 t_4_rec_2 t_5_rec_2 t_6_rec_2
t_1_rec_1 t_2_rec_2 t_3_rec_2 t_4_rec_1
select t1.name_1, t2.name_2, t3.name_3, t4.name_4, t5.name_5, t6.name_6
from Tbl_1 as t1
left join Tbl_2 as t2 on t2.id = t1.id
inner join Tbl_3 as t3 on t2.tbl_3_id = t3.id
inner join Tbl_4 as t4 on t2.tbl_4_id = t4.id
left join Tbl_5 as t5 on t5.id = t2.id
inner join Tbl_6 as t6 on t2.tbl_6_id = t6.id
그러나이 작동하지 않습니다 !!!!! 세 번째 행은 반환되지 않습니다. 마지막 내부 조인 (Tbl_6)을 왼쪽 조인으로 변경하면 세 번째 행이 생성됩니다.
Tbl_5와 Tbl_6 사이의 내부 조인은 Tbl_5 레코드가 발생하지 않지만 Tbl_2와 Tbl_5 사이의 왼쪽 조인은 Tbl_2가되고 내부 조인 된 Tbl_3 및 Tbl_4 레코드는 거기에 있고 Tbl_1의 결과가 Tbl_2에 남았습니다. 그러면 세 번째 행을 얻을 수 있습니다.
무엇이 누락 되었습니까? (차라리 Tbl_5 레코드에 후자가없는 Tbl_5 레코드를 원하지 않기 때문에 내부 조인을 변경하지 않아도됩니다.) 또한이 쿼리는 Zend Db 클래스에서 생성 된 것이므로 필요할 수 있습니다. 그것에 대한 답변을 포함 시키십시오. 제대로 작동하는 쿼리가 있거나 예상대로 Zend를 생성하는 방법을 알아낼 것입니다.
FROM 절에서 1,2,5,3,4,6 순서로 테이블을 처리하십시오. –