내가 몇 일이 (정말 간단한 생각) 일을 알아 내려고되었습니다SQL 쿼리
- alumnes :
내가이 분야에 세 개의 테이블이를 ID , nomcognoms
- grups : id
- alumnesgrups : id, alumne_id (Alumnes.id와 관련됨) 및 grup_id (Grups.id와 관련됨).
I 코드 AvadiariesController.php에서 나는 (선택 상자를 채우려하는 경우는 어떤이는 피벗 테이블 (테이블, 관계형 테이블을 조인 ...)
내 질문입니다 이 쿼리의 결과와 함께 add.ctp)에 :
SELECT
alumnes.nomcognoms
FROM
alumnes_grups
INNER JOIN grups ON
alumnes_grups.grup_id = grups.id
INNER JOIN alumnes ON
alumnes_grups.alumne_id = alumnes.id
WHERE
alumnes_grups.grup_id = '16-17 2nB'
ORDER BY
alumnes.nomcognoms
나는 다른 테이블에서 표시 필드를 가질 수 있습니까? 'id'대신 'name'을 어떻게 볼 수 있습니까?
$alumnesGrups = $this->Avadiaries->AlumnesGrups->Alumnes->find('list',
['fields' => ['Alumnes.nomcognoms'], // keep the alias consistent with whatever you define in the join
'joins' => [['table' => 'alumnes',
'alias' => 'Alumnes',
'type' => 'INNER',
'conditions' => ['Alumnes.id' => 'AlumnesGrups.alumne_id']],
// mimic the above to join the other table
['table' => 'grups',
'alias' => 'Grups',
'type' => 'INNER',
'conditions' => ['AlumnesGrups.grup_id' => '16-17 2nB'],
'order' => ['Alumnes.nomcognoms' => 'ASC']]
]
]
);
지금 add.ctp이 오류를 제공하지 않지만이 조건이 적용되지 않는 :
사용자 법안은 친절하게 (? 제대로) 내가 다시 썼다 뭔가를 제안
'conditions' => ['AlumnesGrups.grup_id' => '16-17 2nB']
이 출발점이 필요하기 때문에 다른 것들을 알아낼 수 있습니다.