【发布时间】:2020-06-18 16:51:25
【问题描述】:
我开始学习 SQL(不是 MySQL,因为它似乎在某些部分有所不同) 我遇到了这个我无法弄清楚如何解决的问题
我有以下表格:
CREATE TABLE products(
product char(30),
color char(30)
);
INSERT INTO products (product, color)
VALUES
("table","brown"),
("chair","brown"),
("shelf","brown"),
("table","black"),
("chair","white");
CREATE TABLE suppliers(
supplier char(30),
product char(30),
color char(30)
);
INSERT INTO suppliers (supplier, product, color)
VALUES
("s1","chair","brown"),
("s1","door","brown"),
("s1","table","brown"),
("s1","table","black"),
("s1","shelf","brown"),
("s2","chair","brown"),
("s3","table","brown"),
("s3","table","black"),
("s3","chair","brown"),
("s3","chair","white"),
("s3","shelf","white");
我需要使用 SQL 查找供应商以及他们可以提供给商店的棕色产品的数量以及 商店出售它们,按计数升序排序(产品表中的棕色产品) . 我从子查询开始,如下所示:
select supplier,COUNT(pb.product)
from (select product from products where color = "brown") as pb, (select supplier, product from suppliers where color = "brown") as sb
where pb.product == sb.product;
但我想不通,请帮忙。
这些表格上的结果需要是:
supplier| no_of_products
-------------------------
s2 | 1
s3 | 2
s1 | 3
【问题讨论】:
-
当你得到意想不到的结果时。停止尝试编写您的总体目标。找出你的误解是什么。--隔离第一个错误的子表达式及其输入和输出。 (调试基础。)不要只是转储错误的代码。尽可能提供最少的剪切和粘贴和可运行代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)从给定的代码中解释您的期望以及原因。
-
感谢您的解释
标签: sql join select group-by count