SQL组合2个表

时间:2010-08-11 13:37:54

标签: sql database mysql

我有2个单独的查询返回给我以下表格:

===========================
Id   f_name     l_name  
===========================
15   Little     Timmy
16   John       Doe
17   Baby       Jessica
---------------------------


===========================
Id   item_name  item_price
===========================
15   Camera     100
15   Computer   200
16   Pony       55
---------------------------

在MySQL中,我如何将2组合成这个:

===================================================
Id   f_name     l_name     item_name     item_price
===================================================
15   Little     Timmy      Camera        100
15   Little     Timmy      Computer      200
16   John       Doe        Pony          55
17   Baby       Jessica
---------------------------------------------------

非常感谢任何帮助。感谢。

5 个答案:

答案 0 :(得分:3)

选择
        name_table.Id,         name_table.f_name,         name_table.l_name,
        item_table.item_name,
        item_table.item_price     从         name_table         左连接item_table         在name_table.Id = item_table.Id

享受!

答案 1 :(得分:3)

有许多类型的连接,这是数据库管理中一个非常有趣和重要的主题。 SO自己的Jeff Atwood有一个非常好的post描述了不同类型的连接和使用它们的情况。

答案 2 :(得分:2)

您需要使用左外join

SELECT names.Id, names.f_name, names.l_name, prices.item_name, prices.item_price
FROM names
 LEFT OUTER JOIN prices
   ON names.Id = prices.Id

答案 3 :(得分:0)

如果您想在数据库中创建一个包含该结果的表,请在create table命令中执行以下任何选择/连接。

CREATE TABLE foobar SELECT ...

答案 4 :(得分:0)

如果要在应用程序中定期执行此select语句,可能需要考虑在数据库中创建视图。视图基本上是多个表中的数据组合。在这里使用视图的一个主要好处是在您的应用程序中进行更简单的查询,因此您只需从视图中选择所有字段,而不是在应用程序中进行连接。

您的CREATE VIEW语句看起来或多或少与Doug的答案相同,而您的选择将是

从my_view中选择ID,f_name,l_name,item_name,item_price;

More details on MySQL CREATE VIEW