总新手。再试一次。
2表Biz和Users
商家有IdNum,created_at,account_type,business_name 用户具有IdNum,country,first_name,last_name
问题:来自日本的企业总数是多少?
我知道我需要使用内连接。
答案 0 :(得分:0)
如果您想要来自加拿大的所有商家的总数(假设您可以从用户的ID字段加入商务中的ID字段),则只计算每个不同的商家一次 -
select count(distinct u.country) --will only count unique entries once
from Biz b
inner join Users u
on b.ID = u.ID
where u.country = 'Japan'
如果您想要所有行的计数,而不是唯一的行 -
select count(u.country) --will count all entries
from Biz b
inner join Users u
on b.ID = u.ID
where u.country = 'Japan'
答案 1 :(得分:0)
我做了一些假设并创建了这个例子。
首先,我创建了两个表,db_users和db_partners 插入一些样本数据。我假设"用户"是 "合作伙伴"的销售经理而且每个伙伴 被分配了一个用户。用户可以有多个合作伙伴。 很奇怪"国家"是用户和的属性 不是合作伙伴,但这就是我解释这个例子的方式。
MariaDB [test_time]> create table db_users (
UserID int unsigned not null auto_increment primary key,
UserName varchar(20),
Country varchar(8)
);
MariaDB [test_time]> create table db_partners (
PartnerID int unsigned not null auto_increment primary key,
PartnerName varchar(20),
Created datetime,
Size int unsigned,
UserID int unsigned
);
MariaDB [test_time]> insert into db_users
(UserName,Country)
values
('Abel','CA'),
('Baker','CA'),
('Charlie','JP'),
('Donald','JP'),
('Edgar','JP')
;
MariaDB [test_time]> insert into db_partners
(PartnerName,Created,Size,UserID)
values
('Kraft',now(),45,1),
('Ford',now(),66,2),
('Hortons',now(),22,1),
('Kroger',now(),15,4)
;
然后我选择了关联用户在CA中的合作伙伴:
MariaDB [test_time]> select
UserName,PartnerName
from
db_users join db_partners using (UserID)
where
Country='CA'
;
+----------+-------------+
| UserName | PartnerName |
+----------+-------------+
| Abel | Kraft |
| Abel | Hortons |
| Baker | Ford |
+----------+-------------+
3 rows in set (0.00 sec)
MariaDB [test_time]> select
count(Country)
from
db_users join db_partners using (UserID)
where
Country='CA'
;
+----------------+
| count(Country) |
+----------------+
| 3 |
+----------------+
1 row in set (0.00 sec)
我不确定这是你想要的。如果没有,请澄清你的 问题
答案 2 :(得分:0)
如果IdNum是您的外键(表之间的连接条件),请使用
SELECT count(*)
FROM Business, Users
WHERE Business.IdNum = Users.IdNum
AND Business.country = 'Japan';