1

私はそれらのテーブルを持っています:

   Members
   ---------------------------
   MemberID | Name |.....
      1
      2
      3
      4
   ---------------------------

   RentedMovies
   ---------------------------
   MemberID | MovieID | DateOfLease | ReturnDate | .....
     1      |    1    |  2012-12-20 |  2013-01-05
     1      |    2    |  2012-12-15 |  2012-12-30
     1      |    3    |  2012-12-16 |  2013-01-06
     2      |    1    |  2012-12-17 |  2012-12-18
     2      |    4    |  2012-12-18 |  2013-01-05
     3      |    1    |  2012-12-19 |  2013-01-04

   I need to get this:
   --------------------------------------------------------
   MemberID | NumberOfRentedMovies | ReturnData < curdate())
     1      |         3            |      1
     2      |         2            |      1
     3      |         1            |      0
     4      |         0            |      0
   ---------------------------------------------------------

そして、次のコードを使用しました:

   SELECT  Members.MemberID,
    COUNT(rented.MemberID) AS NumberOfRentedMovies,
    COUNT(notTakenBackOnTime.idClana) AS NumberOfMoviesLate
   FROM  Members 
   left JOIN RentedMovies as rented ON  rented.MemberID = Members.MemberID
   left JOIN RentedMovies as notTakenBackOnTime ON notTakenBackOnTime.MemberID
       = Members.MemberID AND notTakenBackOnTime.ReturnDate< CURDATE()
   group by Members.MemberID

しかし、それは正しく機能しません!

そして、私もこれを試しました:

   SELECT MemberID,my,my2
   FROM Members as mem
   JOIN (SELECT COUNT(* )AS my FROM RentedMovies) b 
      ON b.MemberID = mem.MemberID
   JOIN (SELECT COUNT(* )AS my2 FROM RentedMovies WHERE ReturnDate< CURDATE()) c 
   ON c.MemberID = mem.MemberID

しかし、私はいくつかのエラーが発生しました! 問題は、正しい解決策をどのように達成するかです。

4

2 に答える 2