タイトルが意味をなすと思いますが、私はクエリを書くことにかなり新しいです。SQLite:2つのSELECTステートメントの結合から新しいテーブルを作成しようとしたときにテーブルのエイリアスが見つかりません
私のテーブルエイリアスが次のクエリで見つからない理由を理解しておきたいと思います。 ON句を付けずに実行すると(FirefoxのSQLite Managerで)実行されますが、この句では、 'no such column t2.story_id'が表示されます。
注 - 作成したダミークエリを使用しています問題を簡素化するためです。私の最終的なクエリは全く同じ構造になるので、エラーや何かを見たら私が改善してもらえるようにしてください。誰かが同じテーブルから2つのステートメントを引っ張っているのだろうかと疑問に思っている人は、同じテーブルから引き出す2つのステートメントを結合する必要がありますが、同時に実行できない非常に特殊な処理は必要です。少なくとも、私はこれがハハになる方法だと言われました。
SELECT * FROM
(
SELECT * FROM
(
SELECT story_id, role_type, user_id
FROM cur_cycle_role_activity
) t1 /* end of the first inner select statement t1 */
LEFT JOIN /* Begin Join Statement */
(
SELECT * FROM
(
SELECT story_id, workstream_num FROM cur_cycle_role_activity
) t2 /* end of the second inner select statement t2 */
) /* End Join */
ON t1.story_id = t2.story_id /* On clause for Join above */
) /* This is the end of the topmost select statement */
エラーメッセージ:あなたはサブクエリでエイリアスを参照することができませんので
[ no such column: t2.story_id ]
「SELECT * FROM(サブクエリ)」がすべて必要なのはなぜですか? – Barmar
サブクエリはなぜですか?しかし、あなたは '/ * End Join * /'を持つ別名を使うべきです。 –
@Barmar私は自分が何をしているのかを理解しやすくしました。申し訳ありませんが悪い習慣や不要な場合。これが問題の原因ですか?もしそうなら、私はそれらを取り除いて再試行することができます! – Andy