複数のテーブルからデータを取得しようとしています (すべてのテーブルは同一です)
Select column1,column2 From table1,table2
MYSQL でこれを取得する正しい方法ですか。(クエリでテーブル名を動的に渡しています)
複数のテーブルからデータを取得しようとしています (すべてのテーブルは同一です)
Select column1,column2 From table1,table2
MYSQL でこれを取得する正しい方法ですか。(クエリでテーブル名を動的に渡しています)
必要な構文は次のとおりです。
SELECT a.column1, b.column2
FROM table1 AS a, table2 AS b
AS
リクエストで直接使用できるエイリアスをテーブルに付けます。
お気に入り:
SELECT table1.column1, table2.column2
FROM table1, table2
テーブルを使用して列を完全修飾すると、列がテーブル内で同じ名前を持つ場合に競合が発生しなくなります。zessxが彼の回答で述べているように、これを行う別の方法は、テーブルにエイリアスを設定することです。これにより、長いテーブル名/スキーマ名を使用してクエリを簡単にすることができます。
多分これ:
SELECT column1, column2
FROM table1
UNION ALL
SELECT column1, column2
FROM table2
ただし、テーブル名を動的に渡すことはできません。それらは事前にデータベースに認識されている必要があります (そのため、最初にプログラムで SQL を構築する必要があります)。