2

2 つのテーブルがあるとします。

お客様

  Name   |   id   |
-------------------
  Benny  |    1   |
  Wilson |    2   |
  Joe    |    3   |
  Austin |    4   |

注文

  Product  |   id   |
---------------------
  TV       |    1   |
  Hifi-set |    1   |
  HTPC     |    1   |
  CD       |    1   |
  DVD      |    1   |
  CD       |    1   |
  DVD      |    1   |

そして、これは私が結果に望むものです:

  Name   | Orders |
-------------------
  Benny  |    7   |
  Wilson |    0   |
  Joe    |    0   |
  Austin |    0   |

私はSQLに慣れていませんが、試しました:

SELECT c.Name FROM Customers AS c LEFT JOIN Orders AS o ON c.id=o.id GROUP BY c.Name

しかし、間違った結果を得ました:

  Name   | Orders |
-------------------
  Benny  |    4   |
  Wilson |    1   |
  Joe    |    1   |
  Austin |    1   |

私は何をしますか?

4

2 に答える 2

2

試す:

select 
   c.Name, 
   (select count(1) from Orders where ID=c.ID) 
from 
   Customers as c
于 2012-07-11T23:41:02.270 に答える
1

を使用しないSubQueryことで、代わりに使用することもできますJOIN

SELECT   a.Name, COUNT(b.id)
FROM     Customers a LEFT JOIN Orders b
            on a.ID = b.ID
GROUP BY a.Name
于 2012-07-11T23:54:18.773 に答える