나는 프로펠러의 새로운 기능입니다. 많은 관계가 많은 테이블 모두를 모두 가져 오는 데는 문제가 있습니다.many to many relation 프로펠러
사용자 및 그룹 테이블이 있습니다. 및 조인 테이블 user_group.
사용자 및 그룹이 많은 관계로 많은이
i와 단일 쿼리의 모든 관련 데이터를 찾기 위해 추적 방법을 사용.
의 schema.xml 파일
<table name="user" phpName="User" idMethod="native">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true" />
<column name="name" type="VARCHAR" size="100" required="true" />
<column name="email" type="VARCHAR" size="100" required="true" />
<column name="age" type="INTEGER" required="true" />
<column name="gender" type="VARCHAR" size="50" required="true" />
<column name="company" type="VARCHAR" size="100" required="true" />
<column name="address" type="VARCHAR" size="100" required="true" />
<column name="country" type="VARCHAR" size="100" required="true" />
<column name="mobileno" type="DOUBLE" required="true" />
<column name="comment_about" type="VARCHAR" size="200" required="true" />
<foreign-key foreignTable="post" name="post" phpName="postWriter">
<reference local="id" foreign="user_id" />
</foreign-key>
</table>
<table name="group">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" />
<column name="name" type="VARCHAR" size="32" />
</table>
<table name="user_group" isCrossRef="true">
<column name="user_id" type="INTEGER" primaryKey="true" />
<column name="group_id" type="INTEGER" primaryKey="true" />
<foreign-key foreignTable="user">
<reference local="user_id" foreign="id" />
</foreign-key>
<foreign-key foreignTable="group">
<reference local="group_id" foreign="id" />
</foreign-key>
</table>
하고 그리고 난이
$userObj = UserQuery::create()
->join('Group')
->find();
같은 관련 데이터를 찾을 쿼리 위에 나에게 치명적인 오류
Fatal error: Uncaught exception 'PropelException' with message 'Unable to execute SELECT statement [SELECT user.id, user.name, user.email, user.age, user.gender, user.company, user.address, user.country, user.mobileno, user.comment_about FROM `user` INNER JOIN `` ON()
을 제공하려고 저를 도와주세요 호 우리는 이것을 해결할 수 있습니다.
어쨌든이 쿼리로 무엇을 달성하려고합니까? – 1337holiday
cakephp와 같이 하나의 Query로 관련 그룹 사용자를 가져오고 싶습니다. 이것을 사용하고 있습니다. $ groupobj = GroupQuery :: create() -> find(); foreach ($ groupobj $ group) { var_dump ($ group-> getUsers() -> toArray()); } 위의 쿼리는 foreach 루프에서 쿼리 사용자를 선택합니다. 데이터베이스 크기와 관련된 좋은 방법이 아닌 것 같아 사용자가있는 모든 그룹을 찾을 수 있습니다. –