- 私は過去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 YEAR)) ORDER BY paid DESC, lastactivity2 DESC, id1 ASC LIMIT 100 ";
mysqlクエリ - 日付の減算
注 'lastactivity2'が' user'テーブルからのものである、双方LEFTが参加した場合INNERにJOINを変換すること。 –
私はLEFT JOINSが問題であるかもしれないと思っていました - それでLEFT JOINの1つをINNER JOINに変更し、もう1つをLEFT JOINとして残しました。私はまた、INNER JOINが最初にコードにリストされ、LEFT JOINが2番目にリストされているように、それを切り替える必要がありました。 – stocktrader