编写一个简单的MySQL替换查询

时间:2013-01-21 07:09:17

标签: mysql sql select replace

我有两张桌子,一张看起来像这样:

ID | Date ID | Data

另一个看起来像这样:

Date ID | Date

你能帮我构建一个基本上不需要第二个表的查询吗?我宁愿让第一张表格成为:ID | Date | Data

如果使用MySQL查询无法做到这一点,我是否应该编写一个快速的PHP脚本来执行此操作?

提前致谢!

3 个答案:

答案 0 :(得分:3)

您需要第二个表,因为您想加入它们。正确?

SELECT  a.ID, b.Date, a.Data
FROM    table1 a
        INNER JOIN table2 b
            ON a.DataID = b.DataID

答案 1 :(得分:2)

这完全是关于数据库规范化的。如果您保留这两个表,那么您的记录将不那么多余。但是当您消除第二个表时,日期字段将更频繁地重复。因此,我建议您同时使用这两个表,因为这是一种有效的练习。

可以用两种方式构建查询。 对于两个表,您应该使用连接查询:

SELECT f.ID, s.Date, f.Data
FROM table1 f
            INNER JOIN table2 s
            ON f.DateID=s.DateID

如果您删除了第二个表格,并且第一个表格包含列 ID,日期,数据,则查询可能只是:

SELECT ID, Date, Data
FROM table1
           WHERE (filter conditions..)

答案 2 :(得分: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