-3

次のような 2 つのテーブルがあります。

ID | Date ID | Data

そして、次のように見える別のもの:

Date ID | Date

基本的に 2 番目のテーブルの必要性を排除するクエリの作成を手伝ってもらえますか? 最初のテーブルを次のようにします。ID | Date | Data

これが MySQL クエリで不可能な場合、これを行うために作成する必要がある簡単な PHP スクリプトはありますか?

前もって感謝します!

4

3 に答える 3

3

それらを結合したいので、2 番目のテーブルが必要になります。右?

SELECT  a.ID, b.Date, a.Data
FROM    table1 a
        INNER JOIN table2 b
            ON a.DataID = b.DataID
于 2013-01-21T07:15:46.110 に答える
2

これはすべてデータベースの正規化に関するものです。これらの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..)
于 2013-01-21T07:24:34.660 に答える
2

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
于 2013-01-21T07:26:07.317 に答える