在MySQL中,现有A、B、C、D、E五张表,表A、B、C分别有:公司,出港数量两个字段,表D、E分别有:公司、进港数量两个字段。已知A、B、C、D、E五张表中的公司数量不完全相同,求汇总出各个公司的出港数量和进港数量的sql实现
时间: 2024-01-02 20:02:14 浏览: 32
以下是可以实现该功能的SQL查询语句:
SELECT A.公司, SUM(A.出港数量) AS 出港总量, SUM(DE.进港数量) AS 进港总量
FROM A LEFT JOIN B ON A.公司 = B.公司
LEFT JOIN C ON A.公司 = C.公司
LEFT JOIN (SELECT 公司, SUM(进港数量) AS 进港数量 FROM D GROUP BY 公司) AS DE ON A.公司 = DE.公司
LEFT JOIN E ON A.公司 = E.公司
GROUP BY A.公司
相关问题
用mysql写一段代码,将表结构相同的a、b、c三张表合并为一张表,插入到表d中
你可以使用以下的MySQL代码来实现将表结构相同的a、b、c三张表合并为一张表,并插入到表d中:
```sql
INSERT INTO d (column1, column2, column3)
SELECT column1, column2, column3 FROM a
UNION ALL
SELECT column1, column2, column3 FROM b
UNION ALL
SELECT column1, column2, column3 FROM c;
```
请注意,上述代码假设表a、b、c和d具有相同的列(column1, column2, column3)。你需要根据实际的表结构进行调整。此外,如果你希望在插入数据时去重,可以将"UNION ALL"替换为"UNION"。
mysql中有三张表,a表,b表通过中间表c表相关联,b表某一字段为type,查询每个type中前10条数据
您好,根据您的描述,我可以回答您的问题。您可以使用以下 SQL 语句查询每个 type 中前 10 条数据:
SELECT * FROM (
SELECT a.*, b.type, ROW_NUMBER() OVER (PARTITION BY b.type ORDER BY a.id) AS rn
FROM a
JOIN c ON a.id = c.a_id
JOIN b ON b.id = c.b_id
) AS t
WHERE t.rn <= 10;
其中,a 表、b 表和 c 表分别为三张表,a 表和 b 表通过 c 表相关联,b 表中的 type 字段表示类型。这个 SQL 语句会查询每个 type 中前 10 条数据,并按照 id 排序。希望这个回答能够帮到您。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)