【问题标题】:Joining child and parent tables连接子表和父表
【发布时间】:2016-03-05 08:10:50
【问题描述】:

我是 mysql 的新手,我有一个关于使用不同联接的快速问题。比如说,我有 2 个表格,一个标题为总计,另一个标题为货物,每个都包含值,

商品

ID | Name
--------
1 | coffee
2 | tea
3 | chocolate

总数

Quantity | goods ID
---------------------
40 | 3
20 | 2
10 | 1

比如这样,商品ID一共是商品表ID的子表,但我想要的显示是

总数

Quantity | goods ID
-------------------
40 | chocolate
20 | tea
10 | coffee

我只想知道不同的联接适用于何处。

【问题讨论】:

  • 那么显然我需要的是内部连接?
  • select * from goods INNER JOIN totals ON goods.ID = totals.goods ID?
  • 取决于请求。您想展示所有商品还是只展示包含数量的商品?
  • 对于这个数据集,内、左和右连接都将返回相同的内容,因为货物表中的每个 id 条目在总计表中也有一个条目,反之亦然。阅读 juergen 发布的链接并在 MySQL 工作台中自己尝试。这是最好的学习方式。只需制作几个表,插入一些数据,然后尝试一些不同的连接。

标签: mysql join


【解决方案1】:

从 Juergen 发布的链接跟进(该链接是一个很好的参考),要获得第三张表的结果,您可以使用 INNER JOIN、FULL OUTER JOIN 或 LEFT/RIGHT OUTER JOIN。这是因为您的两个表设置为相互匹配的方式,因此无需担心空值。

但是,如果表是这样设置的:

商品

身份证 |名称
--------
1 |咖啡
2 |茶
3 |巧克力
4 |牛奶

总计

数量 |商品编号
---------------------
40 | 3
20 | 2
10 | 1

然后,要获得相同的结果,您需要使用 INNER 连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多