同じ構造を持つ複数のテーブルがあります。 JOINなしでこれらのテーブルからSUM(フィールド)を選択するにはどうすればよいですか?JOINなしで複数のテーブルのSQL select sum
たとえば、私が実行した場合、:
SELECT SUM(views) FROM tb1, tb2 WHERE 1
それは「曖昧であるフィールドリストの列 『ビュー』」と言われます。
UNION
を使用する方法はありますか?
同じ構造を持つ複数のテーブルがあります。 JOINなしでこれらのテーブルからSUM(フィールド)を選択するにはどうすればよいですか?JOINなしで複数のテーブルのSQL select sum
たとえば、私が実行した場合、:
SELECT SUM(views) FROM tb1, tb2 WHERE 1
それは「曖昧であるフィールドリストの列 『ビュー』」と言われます。
UNION
を使用する方法はありますか?
私はこれはあなたを取得すべきだと思う:
SELECT SUM(views)
FROM (
SELECT views FROM table1
UNION ALL
SELECT views FROM table2
) A
あなたがCartesian productを作っているので、あなたがエラーを取得している理由は、(1テーブル内のすべての行が他のテーブル内のすべての行に一致しています)両方のテーブルにはview
の列があるため、どちらが取っているのか分かりません。しかし、そのデカルト結合はあなたが探している合計を(おそらく)与えません。
構造が同じである場合:
SELECT SUM(views)
FROM (tb1 UNION tb2)
WHERE 1
それは(私はそれをテストするための便利なMySQLを持っていない)、仕事しようとしない場合:
SELECT SUM(views)
FROM (
(SELECT views FROM tb1)
UNION
(SELECT views FROM tb2)
)
WHERE 1
連合は重複した値を押さえないので、1つの値が複数の列に表示されると、偽の合計が得られます。 – Mithrandir
真ですが、UNION ALLを使用して重複を抑制することはできません – Sparky
SELECT SUM(views) FROM
(
SELECT views FROM tb1
UNION ALL
SELECT views FROM tb2
) t
はありますすべてのテーブルから1つの値を取得しようとしていますか?またはテーブルが同期する場所? – Brian