나는 네 개의 테이블 관계 문제가 있습니까?
Tag=>id,tag_name Image=>Id,Image_name TagImage=>Id,tag_id,Image_id ImageStudent=id,Image_id,student_id이 그리고 학생 ID와 태그 이름을 사용하여 기록을 찾고 싶어요. 어떤 관계를 사용합니까?
나는 네 개의 테이블 관계 문제가 있습니까?
Tag=>id,tag_name Image=>Id,Image_name TagImage=>Id,tag_id,Image_id ImageStudent=id,Image_id,student_id이 그리고 학생 ID와 태그 이름을 사용하여 기록을 찾고 싶어요. 어떤 관계를 사용합니까?
이와 같은 쿼리와 함께 UNION을 사용하는 것이 더 좋을 수도 있습니다. 여기서는 필요한 조인이 있습니다.
SELECT Image.* FROM Image
INNER JOIN ImageStudent ON Image.Id = ImageStudent.Image_id
LEFT OUTER JOIN TagImage ON Image.Id = TagImage.Image_id
INNER JOIN Tag ON TagImage.Id = Tag.Id
WHERE Tag.tag_name = 'foo' AND ImageStudent.student_id = 42;
날짜를 설정 한 다음 시작하는 방법부터 살펴 보겠습니다. –
찾으려는 레코드는 무엇입니까? 이미지 레코드? JOIN을 사용하여 필요한 레코드를 얻는 방법을 묻고 있습니까? 또한 TagImage 테이블이 실제로 필요합니까? – Abs
모델 연결은'Tag HABTM Image'와'Student HABTM Image'입니다 (Student 모델은 제공되지 않지만 거기에 있어야합니다). 'TagImage'와'ImageStudent'는 Cake의 ORM에서 HABTM 관계를 생성하는 "마술"모델입니다 :'Tag hasMany TagImage' /'TagImage belongsTo Tag'와'Image hasMany TagImage /'TagImage belongsTo Image'. –