次のように書くと、クエリは期待どおりに実行されます。
SELECT id, day2.count - day1.count AS diff
FROM day1 NATURAL JOIN day2;
しかし、私が本当に欲しいのは、正しい結合です。私が書くとき、
SELECT T1.id, day2.count - day1.count AS diff
FROM day1 RIGHT JOIN day2 AS T1
ON day1.id = day2.id
フィールド リストに day2.count を認識できないと表示されます。(また、2番目のクエリで RIGHT OUTER JOIN にするべきかどうかはわかりませんが、この場合も結果は同じです。)
シンプルなものが欠けているような気がします。
編集:定義は次のとおりです。
1日目
id bigint(8) NOT NULL
count bigint(21) NOT NULL
2日目
(1日目と同じ)
day1 にはなかった新しい ID が day2 テーブルにある可能性があるという考えです。