158列と22,000行のテーブルがあり、ユーザーからのWHERE条件に基づいて動的に値を挿入する別の空のテーブルがあります。 SELECTクエリは次のようになります。
SELECT * FROM mygrist_tables WHERE suic_att> = 5 AND gender = 'M'
これにより、約9,000件のレコードが返されます(たとえば)。これらのレコードを別のテーブル(このフィルター処理されたデータのみ)に挿入します。出来ますか? INSERTクエリがどのように見えるか、158のすべての列を含む別のテーブルを作成する必要があるのか、INSERTクエリでこれらの158の列をすべて動的に作成するのかについて、誰か教えてもらえますか?また、ビューを使用してこれを行うことができますか、テーブルが不可欠ですか?前もって感謝します!
上記のSELECT
ステートメントとINSERT
を実行して、存在しない新しいテーブルにしたいようです。もしそうなら、これは動作するはずです:
SELECT * INTO YourNewTable
FROM mygrist_tables
WHERE suic_att>=5 AND gender='M'
YourNewTableが既に存在すると仮定すると、INSERT INTOを実行する必要があります。
INSERT INTO YourNewTable
SELECT *
FROM mygrist_tables
WHERE suic_att>=5 AND gender='M'
オプションで、同じではない列を指定する必要がある場合があります。
[〜#〜] edit [〜#〜]-コメントを読み直し、DBがMySQLであることを認識し、 SQLステートメントから新しいテーブルを作成するには、次を使用する必要があります。
CREATE TABLE YourNewTable
SELECT *
FROM mygrist_tables
WHERE suic_att>=5 AND gender='M';
SELECT INTO構文を使用できます
SELECT *
INTO MyNewTable
FROM mygrist_tables WHERE suic_att>=5 AND gender='M'
ただし、そのような既存のテーブルに挿入することはできません。テーブルが既に存在する場合は、使用します
INSERT INTO MyOldTable
([LIST OUT YOUR COLUMNS HERE])
SELECT [LIST OUT YOUR COLUMNS HERE]
FROM mygrist_tables WHERE suic_att>=5 AND gender='M'