2015-04-06 83 views
-1

我有两个表SQL查询:我如何获得地址和每个地址的订单数量

一个包含用户地址列表,另一个表包含订单列表。

我想要做的就是加入这些表格,获得一个明确的地址列表和地址的订单数量。

Table1 
ID - USERNAME - USERADDRESS 
1  - USER1  - ADRESS1 
2  - USER2  - ADDRES2 
3  - USER3  - ADDRES3 

Table2 
ID - USERID  - ORDERDETAIL 
1  - 3   - ... 
2  - 2   - ... 
3  - 2   - ... 
4  - 1   - ... 
5  - 3   - ... 
6  - 2   - ... 
7  - 1   - ... 
8  - 3   - ... 
9  - 3   - ... 
10 - 3   - ... 

而获取

ADDRESS1 2 
ADDRESS2 3 
ADDRESS3 5 

我怎样才能做到这一点在一个SQL语句?

+1

,它会是多少更容易帮助你... – jarlh 2015-04-06 10:23:12

+1

并为您正在使用的DBMS添加标签。 Postgres的?甲骨文? – 2015-04-06 10:23:35

回答

1

您可以检查此查询:如果您给我们表定义,样本数据和预期的结果

select a.address, count(o.order_num) orders from addresses a inner join orders o on a.address_id = o.address_id GROUP BY a.address 
1

根据评论,你应该陈述RDBMS并发布你的尝试。加盟和应用的集合,一般的做法是这样的:

SELECT t1.USERADDRESS, 
     COUNT(t2.ID) as NumOrders -- Show each address and a count of orders 
FROM Table1 t1 
    INNER JOIN Table2 t2 
    on t2.USERID = t1.ID -- JOIN Key 
GROUP BY t1.USERADDRESS;