0
내가 SQL 레일 3 구문 쿼리 다음 한 SQL 쿼리와 문제 : Models
테이블에서레일 3-
variab = Model.joins(:photo).where('photos.user_id = ?', user).group('model.photo_id').count
나는 이러한 데이터가 :
+----+----------+----------+---------------------+----------+
| id | photo_id | created_at | updated_at |
+----+----------+----------+---------------------+----------+
| 31 | 210 | 2011-09-16 14:38:22 | 2011-09-16 14:38:22 |
| 32 | 210 | 2011-09-16 14:38:22 | 2011-09-16 14:38:22 |
| 33 | 211 | 2011-09-16 15:03:26 | 2011-09-16 15:03:26 |
+----+----------+----------+---------------------+----------+
을 그리고 난을 얻으려고 값 - 고유 한 수를 가져와야합니다. photo_id 데이터입니다. 그러나 위의 SQL 쿼리를 사용하면 결과는 ** 21022111 **입니다. 이해할 수 없습니다.이 숫자의 의미는 ... 이되어야한다고 가정하지만, 그렇지 않습니다. 이해하지 ...
사람이이 문제를 도와 줄 수 있다면 정말 기쁠은 ... 정말 고마워요 이유
답장을 보내 주셔서 감사합니다. 이 예제는 나에게이 쿼리를 생성한다 :'SELECT COUNT (DISTINCT'model'.'id') FROM'model' LEFT OUTER JOIN'photos' ON'photos'.'id' ='model'.photo_id' WHERE (user_id = 2)'- 이것은 내 스크립트에서 ** ** ** 결과를 제공하지만, mysql의 터미널에서는 ** 3 **입니다. 하지만 올바른 출력은 2가되어야합니다. – user1946705
아마 내가 당신의 모델을 오해하고 있습니다. 모델 또는 사진 표에 user_id가 있습니까? 그것의 사진 테이블에 다음 대답의 where 절이 잘못되었습니다. – Steve
user_id 키가 사진 테이블에있는 경우 Model.select (: photo_id) .joins (: photo) .where ('photos.user_id =?', user) .count : distinct => true) – Steve