This question already has answers here:
Inner join with count() on three tables
(6个答案)
2年前关闭。
用户表:
组表:
销售表:
我想知道通过groupid而不是userid在sales表中有多少行。但是sales表没有groupid字段。
我怎样才能加入这三个表来得到我想要的东西?一个联接查询有可能吗?
编辑:
如评论中的进一步要求,要获取特定
(6个答案)
2年前关闭。
用户表:
id groupid username
1 1 user1
2 1 user2
3 2 user3
4 2 user4
组表:
id groupname
1 group1
2 group2
3 group3
销售表:
id userid amount
1 1 10
2 1 15
3 1 30
4 3 10
5 3 25
我想知道通过groupid而不是userid在sales表中有多少行。但是sales表没有groupid字段。
我怎样才能加入这三个表来得到我想要的东西?一个联接查询有可能吗?
最佳答案
三个表之间的用户INNER JOIN基于它们之间的(外部)键关系,并使用groupid的WHERE
条件来仅获取特定$groupid
的结果
SELECT sales.* FROM sales
INNER JOIN user ON user.id = sales.userid
INNER JOIN group ON group.id = user.groupid
WHERE group.id = $groupid;
编辑:
如评论中的进一步要求,要获取特定
groupid
的销售总额,我们使用SUM函数。这是更新的查询:SELECT SUM(sales.amount) AS total_sales FROM sales
INNER JOIN user ON user.id = sales.userid
INNER JOIN group ON group.id = user.groupid
WHERE group.id = $groupid;
关于mysql - MySQL对3个表的联接查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51800680/
10-15 19:45