MySQL查询从具有内部联接,别名的两个表中获取数据

用户名

我有两张桌子:

use exercise;

create table Companies 
(
    ID  int,
    Name    varchar(100),
    City    varchar(100),
    c_size varchar(100),
    PRIMARY KEY (ID)
);

insert into Companies(ID, Name, city, company_size) 
values
(222, 'Karma LLC','CITY2', 'big'),
(223, 'Manny Ind.','CITY1', 'medium'),
(224, 'Random PLC','CITY1', 'medium'),
(225, 'Hijack LLC','CITY1', 'medium'),
(226, 'Travels LLC','CITY1', 'small'),
(227, 'Mirana Ind.','CITY2', 'small'),
(228, 'Polla Ind.','CITY3', 'small'),
(229, 'Americano LLC','CITY3', 'small'),
(230, 'Macaroni LLC','CITY4', 'small');

CREATE TABLE INVOICES
(
    ID INT auto_increment,
    `DATE` DATE,
    Company INT,
    Amount DECIMAL(7,2),
    PRIMARY KEY (ID)
);

INSERT INTO INVOICES(`DATE`,Company,Amount)
VALUES
('2014-01-02', 222, 19500.00),
('2014-01-02', 222, 29205),
('2014-01-07', 222, 152.50),
('2014-01-07', 223, 6590),
('2014-01-07', 223, 4999),
('2014-01-09', 224, 720.60),
('2014-01-09', 225, 1100),
('2014-02-05', 226, 885),
('2014-02-05', 222, 9678.7);

我的任务很简单:编写查询,该查询返回由城市支付大部分发票的公司(按金额值)。
我觉得有必要使用JOIN表的别名,或者类似的别名,但是我MySQL对语言的这些方面还是很陌生。寻找好的教程/练习。

然后查询应返回类似以下内容的内容:

|---sum(amount)_for_city_which_paid_most---|---name_of_the_city---|  
|------------------number------------------|---------city---------|  

抱歉,ASCII,但是我觉得这是表达我的意思的清晰快捷的方法。
我还想知道查询,其中列出了city_name和该城市的公司支付的金额(类似于上述内容,但包括所有城市,而不仅仅是一个城市)。
对不起,英语不好:(

空灵的

那么,这样的事情?

SELECT *,SUM(i.Amount) AS total_amount
FROM Companies c
JOIN INVOICES i ON c.ID=i.Company
GROUP BY c.City
ORDER BY total_amount desc
LIMIT 1

编辑:第二个不起作用,因为您想按城市分组,该城市仅存在于Company表中。

如果仅使用公司ID,则可以保存自己的联接:

SELECT i.Company,SUM(i.Amount) AS total_amount
FROM INVOICES i
GROUP BY i.Company
ORDER BY total_amount desc
LIMIT 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有两个表的内部联接查询

在同一表中查询具有两个ID的内部联接

从两个表的联接中获取具有最大ID的行,而无需子查询

具有两个内部联接的PostgreSQL查询

具有两个表的多内部联接

Mysql对具有多个列但有很多冗余的两个表进行联接查询

mysql查询从具有公共字段的两个表中检索数据

如何从MySQL中具有一对多关系的两个表中获取数据?

获取联接具有相同列ID的房间中的两个表的数据

如何联接两个查询中哪些表具有相似的名称?

MySQL联接两个表查询

尝试通过从两个表中提取数据来创建新表,并在此查询中不断获取“错误:每个派生表必须具有自己的别名”

实体框架中具有两个表联接数据的过滤器列表

使用内部联接联接两个具有不同名称的表

如何在联接查询中的两个表中更新具有相同名称的两列

MySQL从表中选择数据并内部联接来自另外两个相同表的所有选择

左联接三个表与内部联接在mysql中的两个

mysql在一个查询中具有不同记录的两个表

使用内部联接和两个前键查询表数据

我如何使用mysql中的单个查询从两个表中获取数据

SQL从具有内部联接和限制的两个表中选择

在mysql查询中使用两个内部联接

查询以从两个不同的表中获取数据

SQL查询,如何从两个表中获取数据

子查询并从两个表中获取数据

SQL Server查询从具有多个条件的两个表中检索数据

使用单个查询从两个不同的 mysql 表中获取数据时遇到问题..!

MySQL数据库在一个表中具有两个外键

在部分表数据具有不同条件的两个表上左联接