gpt4 book ai didi

MySQL从多个表中选择条件

转载 作者:行者123 更新时间:2023-11-29 00:46:31 26 4
gpt4 key购买 nike

我有 4 个表:

  • 文章
  • 酒吧
  • 布卡塔里
  • 杂志

mysql> 从 ARTICOLE 中选择 *;

| OID | ART      |  
| 1 | TEST |
| 2 | TESTQ |
| 3 | MYART |
| 4 | MYARTBUC |

一组 4 行(0.00 秒)

mysql> 从 BAR 中选择 *;

| OID | ART   | CANT     |
| 1 | TEST | 3.00000 |
| 2 | TESTQ | 1.00000 |
| 3 | MYART | 20.00000 |

集合中的 3 行(0.00 秒)

mysql> select * from BUCATARIE;

| OID | ART      | CANT     |
| 1 | TEST | 5.00000 |
| 2 | MYARTBUC | 10.00000 |

集合中的 2 行(0.00 秒)

mysql> 从 MAGAZIE 中选择 *;空集(0.00 秒)

下面的查询

mysql> 从 ARTICOLE a,BUCATARIE buc,BAR bar,MAGAZIE mag 中选择 a.ART,sum(bar.CANT),sum(buc.CANT),sum(mag.CANT) 其中 a.ART= bar.ART and a.ART=bar.ART and a.ART=mag.ART group by a.ART;

返回:


空集(0.00 秒)

必须如何查询才能返回:

| ART | sum(bar.CANT) | sum(buc.CANT) | sum(mag.CANT) |
TEST | 3.00000 | 5.00000 | NULL |
TESTQ | 1.00000 | NULL | NULL |
MYART | 20.00000 | NULL | NULL|
MYARTBUC | NULL | 10.00000 | NULL |

????

感谢任何帮助。

最佳答案

你需要利用LEFT JOIN包括来自其他表的结果而不过滤掉不匹配的记录:

   select a.ART,sum(bar.CANT),sum(buc.CANT),sum(mag.CANT)
from ARTICOLE a
left join BUCATARIE buc on buc.ART = a.ART
left join BAR bar on bar.ART = a.ART
left join MAGAZIE mag on mag.ART = a.ART
group by a.ART;

示例结果:

ART         SUM(BAR.CANT)   SUM(BUC.CANT)   SUM(MAG.CANT)
MYART 20
MYARTBUC 10
TEST 3 5
TESTQ 1

演示:http://www.sqlfiddle.com/#!2/6efb2/2

关于MySQL从多个表中选择条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352705/

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