gpt4 book ai didi

mysql - 将一个表与另外 2 个表连接,这两个表可能有也可能没有相关行

转载 作者:行者123 更新时间:2023-11-29 09:37:47 24 4
gpt4 key购买 nike

我有 3 个表,即:

  1. 产品(id、标题)
  2. Stock_in(产品 ID、数量、日期)
  3. stock_out(产品 ID、数量、日期)

我想使用联接来获取每个产品的库存变动列表。

我尝试使用基本联接来联接所有 3 个表,但我的查询的问题是它返回同时具有进出移动的产品的行。

这是我能做的最好的事情,我尝试过的所有其他查询都是最糟糕的

SELECT  c.title, si.qty, so.qty, si.date  , so.date
FROM `products` c, stock_in si , stock_out so
where (c.id LIKE si.code OR c.id LIKE so.code)
group by c.code_id

预期结果是显示每种产品的行以及每个日期的库存变动,可以在同一行或 2 个不同行中显示进出日期。

也许连接所有 3 个表是一种错误的方法,我应该为库存数据和库存数据分别运行 2 个查询,然后在后端合并行?会优化吗?

最佳答案

你还没有聚合函数,所以你不应该使用group by而应该使用distinct。另外,如果表之间的行无法匹配,您应该使用基于左连接的显式连接语法。

    SELECT distinct c.title
, si.qty
, so.qty
, si.date
, so.date
FROM `products` c
LEFT JOIN stock_in si ON c.id = si.code
LEFT JOIN stock_out so OON c.id = so.code

关于mysql - 将一个表与另外 2 个表连接,这两个表可能有也可能没有相关行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57235248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com