2014-04-07 2 views
0

두 개의 테이블이 있습니다 : 위치 및 업로드. 그들은 다른 정보들 중에서 Username과 Timestamp를 가지고 있습니다. 플레이어가 콘텐츠를 업로드하기 전에 얼마나 오래 지 냈는지 확인하고 싶습니다. 이렇게하려면 시작 시간을 얻기 위해 위치 테이블에서 가장 낮은 시간 스탬프가 필요합니다. 그런 다음 첫 번째 업로드 타임 스탬프에서이 값을 뺍니다.두 테이블간에 사용자 당 가장 낮은 값 차이 선택

즉, 첫 번째 콘텐츠를 업로드하기 전에 플레이어가 게임에 소비 한 시간을 확인하고 싶습니다.

계산을 처리하기 위해 PHP 거래를 작성할 수는 있지만 잔인 할 수있는 것처럼 느껴졌고 아마도 자동으로 수행 할 수있는 기본 SQL 명령이있을 것입니다. 나는 그것을하는 방법에 대한 약간의 브레인 스토밍을했고 이것은 내가 지금까지 가지고있는 것입니다 :

Select a.UserID, DATEDIFF(Min(a.timestamp),Min(b.Timestamp)) 
From db.Uploads a, db.Position b 
WHERE 
a.UserID = b.UserID 
GROUP BY a.UserID 

누구든지 아이디어가 있습니까? 내 코드가 꽤 절름발이라는 것을 알고 있지만 지금 당장은 내가 생각해내는 코드입니다.

+0

검색어에 어떤 문제가 있습니까? 내가 올바르게 이해한다면 그것은 실제로 효과가있을 것입니다. – fancyPants

+0

안녕하세요, fancPants, 데이트 필드가 날짜 필드 임에도 불구하고 필자가 필요로했던 것이 아니 었습니다. 정확히 왜 그런지는 모르겠지만 그것이 그 방법입니다. 나는이 작업을 수행했다 : 선택 a.UserID (최소 (A.TIMESTAMP TOE가 IT)라는 우수한 성능을 나타내었다 (b.Timestamp)) db.Uploads A로부터 TimeDifference , db.Position로 B WHERE a.UserID = B. 사용자 ID GROUP BY a.UserID – justinhpatterson

답변

0

DateDiff를 사용하는 것에 대해 나에게 미친 것이 아니지만 뺄셈을했을 때 효과가 있었습니까? Bluehost의 테이블 설정은 이상한 일을해야합니다.

Select a.UserID, Min(a.timestamp)-Min(b.Timestamp) 
From db.Uploads a, db.Position b 
WHERE 
a.UserID = b.UserID 
GROUP BY a.UserID 
관련 문제