2

是)我有的:

表格1

╔════╦═══════╦═════╗
║ ID ║ NAME  ║ AGE ║
╠════╬═══════╬═════╣
║  0 ║ John  ║  15 ║
║  1 ║ Chris ║  20 ║
╚════╩═══════╩═════╝

表2

╔════╦════════════╦═════════════╗
║ ID ║ OCCUPATION ║   ADDRESS   ║
╠════╬════════════╬═════════════╣
║  0 ║ Bus Driver ║ None        ║
║  1 ║ Lawyer     ║ some adress ║
╚════╩════════════╩═════════════╝

期望的输出

表3

╔════╦═══════╦═════╦════════════╦═════════════╗
║ ID ║ NAME  ║ AGE ║ OCCUPATION ║   ADDRESS   ║
╠════╬═══════╬═════╬════════════╬═════════════╣
║  0 ║ John  ║  15 ║ Bus Driver ║ None        ║
║  1 ║ Chris ║  20 ║ Lawyer     ║ some adress ║
╚════╩═══════╩═════╩════════════╩═════════════╝

虽然我可以通过使用 PHPmysql_query("SELECT .. "); mysql_query("INSERT ..");的方式来完成这项任务,但我想使用纯 SQL 来完成这项任务。

4

3 回答 3

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;

SQL 小提琴演示

这会给你:

| ID |  NAME | AGE | OCCUPATION |     ADDRESS |
-----------------------------------------------
|  0 |  John |  15 | Bus Driver |        None |
|  1 | Chris |  20 |     Lawyer | some adress |

如果要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;

像这样

于 2013-02-03T11:29:23.773 回答
3

试试这个

 SELECT t1.* , t2.* 
 FROM table1 t1, table2 t2
 WHERE t1.id = t2.id

SQL 小提琴演示

于 2013-02-03T11:38:03.007 回答
0

这应该做,

SELECT a.id, name, age, occupation, address
FROM table1 a, table2 b
WHERE a.id = b.id;
于 2013-02-03T11:32:22.303 回答