在MySQL中连接两个表

Ber*_*lcı 2 mysql sql

是)我有的:

表格1

????????????????????
? ID ? NAME  ? AGE ?
????????????????????
?  0 ? John  ?  15 ?
?  1 ? Chris ?  20 ?
????????????????????
Run Code Online (Sandbox Code Playgroud)

表2

?????????????????????????????????
? ID ? OCCUPATION ?   ADDRESS   ?
?????????????????????????????????
?  0 ? Bus Driver ? None        ?
?  1 ? Lawyer     ? some adress ?
?????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

期望的输出:

表3

???????????????????????????????????????????????
? ID ? NAME  ? AGE ? OCCUPATION ?   ADDRESS   ?
???????????????????????????????????????????????
?  0 ? John  ?  15 ? Bus Driver ? None        ?
?  1 ? Chris ?  20 ? Lawyer     ? some adress ?
???????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

虽然我可以使用PHP mysql_query("SELECT .. "); mysql_query("INSERT ..");-ish方式完成此任务,但我想使用纯SQL来完成此任务.

Mah*_*mal 5

JOIN 两个表:

SELECT
  t1.ID,
  t1.Name,
  t1.Age,
  t2.Occupation,
  t2.Address
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID;
Run Code Online (Sandbox Code Playgroud)

SQL小提琴演示

这会给你:

| ID |  NAME | AGE | OCCUPATION |     ADDRESS |
-----------------------------------------------
|  0 |  John |  15 | Bus Driver |        None |
|  1 | Chris |  20 |     Lawyer | some adress |
Run Code Online (Sandbox Code Playgroud)

如果要table3直接从此选择创建新表,请执行以下操作:

CREATE Table Table3
AS 
SELECT
  t1.Name,
  t1.Age,
  t2.Occupation,
  t2.Address
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID;
Run Code Online (Sandbox Code Playgroud)

像这样