左結合を実行して結果が得られないことがあるため、「最初の」テーブルのIDは何とか0に設定されます。コピーが不変になるようにして、結合に失敗したときでも私はそれにアクセスできます。ここで同じ行を2回選択してコピーを不変にする
は私のクエリです:
SELECT * FROM table1
LEFT JOIN table2 ON table1.ID = table2.ID
LEFT JOIN table3 ON table1.ID = table3.ID
各行は、表1にのみテーブル2または表3のいずれかで同じIDを持っているので、行ごとに、二つのうちの一つが参加し、「失敗」します。結果として得られるものは次のとおりです(モック結果):
+------+------------+------------+------------+------------+------------+------------+
| ID | Table1Col1 | Table1Col2 | Table2Col1 | Table2Col2 | Table3Col1 | Table3Col2 |
+------+------------+------------+------------+------------+------------+------------+
| NULL | Something | Something | NULL | NULL | Something | Something |
| NULL | SomeValue | SomeValue | Something | Something | NULL | NULL |
+------+------------+------------+------------+------------+------------+------------+
私が達成したいこと:「ID」がNULLでないようにしてください。
(また、選択する "のMyIDとしてtable1.IDを、*" 私にSQLエラーを与える)
(明示的な値を選択すると、設計上の理由から問題外です)
あなたは何を含むことができますか? –
'*'はちょうど間違っているかもしれない1つのIDフィールドを提供するだけなので、 "不変"は正しい単語ではないと思います。エラーメッセージを表示すると便利でした。 – Jakumi