- 지난 3 년 동안 활동 한 사용자를 쿼리하려고합니다.
- 수년간 내가 잘 알고있는 쿼리를 조정 중이므로 잘 작동합니다. 추가하려는 쿼리의 유일한 부분은 회색 코드 바깥 부분입니다. 나는이 부분을 올바르게 할 수 없다.
- (lastactivity)에 대한 날짜를 쿼리하는 열은 int (10) 형식으로 저장되며 VBulletin 열이고 변경 내용이 영향을 미치지 않기 때문에 변경하지 않을 것이라고 생각합니다. 매우 많은 다른 쿼리.
$query = "SELECT user.userid AS id3, user.lastactivity AS lastactivity1, DATE_FORMAT(FROM_UNIXTIME(user.lastactivity), '%Y %m %d') AS 'lastactivity2', socialgroup.groupid AS id1, socialgroupicon.groupid AS id2, socialgroupicon.dateline AS picdate, name, zip1, city1, state1, socialgroup.dateline AS groupdate, creatoruserid, members, picturecount, visible, paid FROM socialgroup LEFT JOIN socialgroupicon ON socialgroupicon.groupid=socialgroup.groupid LEFT JOIN user ON user.userid=socialgroup.creatoruserid WHERE type != 'inviteonly' AND state1 = '$region'
및 lastactivity2 <는 UNIX_TIMESTAMP (지금 DATE_SUB ((), INTERVAL 3 년)) ORDER BY paid DESC, lastactivity2 DESC, id1 ASC LIMIT 100 ";
mysql 질의 - 날짜 뺄셈
참고. –
LEFT JOIN이 문제가 될 수 있다고 생각했기 때문에 LEFT JOIN 중 하나를 INNER JOIN으로 변경하고 나머지는 LEFT JOIN으로 남겨 두었습니다. 일부 항목을 필터링했기 때문에 혼자 남겨 두어야했습니다 n 쿼리. 또한 INNER JOIN이 코드에서 첫 번째로 나열되었고 LEFT JOIN이 순서대로 나열되어 있으므로 전환해야했습니다. 감사합니다. – stocktrader