0
私はほとんどの時間、ORMツールを使用してきました。私はいくつかのSQLを実行する必要があります - 私の典型的なRails環境ではありません。結果のSQLサブセット
"SELECT projects.id, projects.company_id, projects.name,
companies.name as company_name,
people.name as person_name,
users.name as user_name
FROM projects
INNER JOIN companies ON companies.id = projects.company_id
LEFT OUTER JOIN project_people ON project_people.project_id = projects.id
LEFT OUTER JOIN people ON people.id = project_people.person_id
LEFT OUTER JOIN project_users ON project_users.project_id = projects.id
LEFT OUTER JOIN users ON users.id = project_users.user_id"
1つのレコードを選択すると、通常、結果に複数の行が表示されます。私は2人のproject_peopleと2人のproject_usersを持っています。
私が取得します:
{"id"=>"7744", "company_id"=>"42598", "name"=>"Project with a name", "company_name"=>"(Confidential)", "person_name"=>"A person name", "user_name"=>nil}
{"id"=>"7744", "company_id"=>"42598", "name"=>"Project with a name", "company_name"=>"(Confidential)", "person_name"=>"Another name", "user_name"=>nil}
{"id"=>"7744", "company_id"=>"42598", "name"=>"Project with a name", "company_name"=>"(Confidential)", "person_name"=>"Another name", "user_name"=>'Some user'}
{"id"=>"7744", "company_id"=>"42598", "name"=>"Project with a name", "company_name"=>"(Confidential)", "person_name"=>"A person name", "user_name"=>'Some user'}
私が持っていると思い何は以下の通りです:
{"id"=>"7744", "company_id"=>"42598", "name"=>"Project with a name", "company_name"=>"(Confidential)", "people"=>{
"person_name"=>"A person name",
"person_name"=>"Another name",
}, "users"=>{
"user_name"=>nil,
"user_name"=>'Some user'
}
}
私はあなたがこれを簡単に解決することができるSQLであなたの第一人者年代のいくつかのために知っています私がこのような不満な質問をするのは、どうしてひどいことだと思うのが恐ろしいのです。私はこれが可能であると確信しています - 単一のクエリで