次のような 2 つのテーブルがあります。
ID | Date ID | Data
そして、次のように見える別のもの:
Date ID | Date
基本的に 2 番目のテーブルの必要性を排除するクエリの作成を手伝ってもらえますか? 最初のテーブルを次のようにします。ID | Date | Data
これが MySQL クエリで不可能な場合、これを行うために作成する必要がある簡単な PHP スクリプトはありますか?
前もって感謝します!
それらを結合したいので、2 番目のテーブルが必要になります。右?
SELECT a.ID, b.Date, a.Data
FROM table1 a
INNER JOIN table2 b
ON a.DataID = b.DataID
これはすべてデータベースの正規化に関するものです。これらの2つのテーブルをそのままにしておくと、レコードの冗長性が少なくなります。ただし、2番目のテーブルを削除すると、[日付]フィールドがより頻繁に繰り返されます。したがって、効率的な方法であるため、両方のテーブルを用意することをお勧めします。
クエリは両方の方法で構築できます。2つのテーブルの場合、結合クエリを次のように使用する必要があります。
SELECT f.ID, s.Date, f.Data
FROM table1 f
INNER JOIN table2 s
ON f.DateID=s.DateID
2番目のテーブルを削除し、列ID、Date、Dataを持つ最初のテーブルがある場合、クエリは単純に次のようになります。
SELECT ID, Date, Data
FROM table1
WHERE (filter conditions..)
1) 新しいテーブルを作成します。
CREATE TABLE table3
(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
date DATE,
data TEXT,
PRIMARY KEY (id)
)
2) 新しく作成したテーブルに、前のテーブルから要求したデータを挿入します。
INSERT INTO
table3
SELECT
table1.id,
table1.data,
table2.date
FROM
table1, table2
WHERE
table1.date_id = table2.date_id