0
SQLite DB、Task、Project、Userの3つのテーブルが、この順番で互いに関連付けられています。私はすべてのタスクを選択したいと思います。タスクが関連付けられているプロジェクトにユーザがいる場合は、ユーザとプロジェクトの両方を見たいと思っています。SQLiteのネストされた内部結合の右側からそのような列がありません
私の最初のパスは
SELECT `Task`.`id`
,`Task`.`title`
,`Task`.`projectId`
,`Project`.`id` AS `Project.id`
,`Project`.`title` AS `Project.title`
,`Project`.`userId` AS `Project.userId`
,`Project.User`.`id` AS `Project.user.id`
,`Project.User`.`username` AS `Project.User.username`
FROM `Task` AS `Task`
LEFT OUTER JOIN `Project` AS `Project` ON `Task`.`projectId` = `project`.`id`
INNER JOIN `User` AS `Project.User` ON `Project`.`userId` = `Project.User`.`id`
AND `Project.User`.`username` = 'test01';
のように見えますが、内側には、バックアップ「リップル」と私は唯一のユーザーとのプロジェクトを持っていたタスクを持って参加します。私はすべてのタスクを取得したいので、私はいくつかの括弧を追加し、
SELECT `Task`.`id`
,`Task`.`title`
,`Task`.`projectId`
,`Project`.`id` AS `Project.id`
,`Project`.`title` AS `Project.title`
,`Project`.`userId` AS `Project.userId`
,`Project.User`.`id` AS `Project.user.id`
,`Project.User`.`username` AS `Project.User.username`
FROM `Task` AS `Task`
LEFT OUTER JOIN (`Project` AS `Project`
INNER JOIN `User` AS `Project.User` ON `Project`.`userId` = `Project.User`.`id`
AND `Project.User`.`username` = 'test01') ON `Task`.`projectId` = `project`.`id`;
を得た私は、SELECTからProject.User
列を省略した場合、これは素晴らしい作品が、私は同様にそれらをしたいです。これを実行すると、次のエラーが発生します。
no such column: Project.User.id
括弧を追加すると、何らかの方法でUserテーブルが非表示になっているようです。この声明から私が望むすべての行動を得る方法はありますか?
そして、 'User'テーブルに' id'という列がありますか? 'Project.User'を' Project_User'のように変更して問題が解決するかどうか確認してください。もし '.'演算子が' SQL'で異なって理解されているのかどうかはわかりません。 – ishmaelMakitla