合并两个MySQL表

合并两个MySQL表,mysql,database,merge,Mysql,Database,Merge,我有两个表:数据表和注释表 data: ------------------- id | name | email | pics: ------------------- msg_id | pic | 数据由id和msg_id关联。如何将这两个表合并到最后一个表中 编辑:数据中的某些行没有关联pic,我需要保留它们。您可能需要使用以下语法: 例如: 您当前的数据: CREATE TABLE data (id int, name varchar(20), email varchar(100))

我有两个表:数据表和注释表

data:
-------------------
id | name | email |

pics:
-------------------
msg_id | pic |
数据由id和msg_id关联。如何将这两个表合并到最后一个表中

编辑:数据中的某些行没有关联pic,我需要保留它们。

您可能需要使用以下语法:

例如:

您当前的数据:

CREATE TABLE data (id int, name varchar(20), email varchar(100));
INSERT INTO data VALUES (1, 'name1', 'a@example.com');
INSERT INTO data VALUES (2, 'name2', 'b@example.com');
INSERT INTO data VALUES (3, 'name3', 'c@example.com');
INSERT INTO data VALUES (4, 'name4', 'd@example.com');

CREATE TABLE pics (msg_id int, pic varchar(100));
INSERT INTO pics VALUES (1, 'pic1.jpg');
INSERT INTO pics VALUES (1, 'pic2.jpg');
INSERT INTO pics VALUES (2, 'pic3.jpg');
INSERT INTO pics VALUES (2, 'pic4.jpg');
INSERT INTO pics VALUES (3, 'pic5.jpg');
您的新表:

CREATE TABLE final_table (
  id int, name varchar(20), email varchar(100), pic varchar(100)
);

INSERT INTO final_table
SELECT      id, name, email, pic
FROM        data
LEFT JOIN   pics ON (pics.msg_id = data.id);
结果:

SELECT * FROM final_table;
+------+-------+---------------+----------+
| id   | name  | email         | pic      |
+------+-------+---------------+----------+
|    1 | name1 | a@example.com | pic1.jpg |
|    1 | name1 | a@example.com | pic2.jpg |
|    2 | name2 | b@example.com | pic3.jpg |
|    2 | name2 | b@example.com | pic4.jpg |
|    3 | name3 | c@example.com | pic5.jpg |
|    4 | name4 | d@example.com | NULL     |
+------+-------+---------------+----------+
6 rows in set (0.00 sec)

您可能需要从这两个表中提取数据并将它们连接到一个表中?因此,您可以使用以下查询:

SELECT D.*, P.* FROM data D, pics P WHERE D.Id=P.msg_id

现在还不清楚你期望的结果是什么?这是一个新表,还是只需要SELECT语句从两个表返回数据?很抱歉,现在我看到了一个问题,数据中的一些数据没有图片,已从中排除merge@greenbandit:您可能希望使用
左连接
,而不是
连接
。。。用一个例子更新了我的答案。
SELECT D.*, P.* FROM data D, pics P WHERE D.Id=P.msg_id