これを達成するための最良の方法についてのアドバイスをお探しください。スタックオーバーフローに関するいくつかの質問から、私はユニオン、ジョイン、エイリアスの例を試しました。誰も私がどこに行きたいのか分からないようです。私はこれを間違った方法で解決しようとしてきたと思う。MySQLの範囲内での結果と任意の範囲内での最初の発生
ユーザーからのすべてのアクティビティを記録するテーブルが1つあります。各ログには、IDを持つ列とTIMESTAMPを持つ列が含まれています。イベントの種類を示す列はありません。
範囲内にあるかどうかに関係なく、範囲内のカウントを取得し、アクティブ化日(最初のアクセス)の仮想列を追加します。このビジネスケースは、ユーザーが範囲、アクティブ化日付、およびその範囲内のイベントの量内でアクティブであることを示すレポートを得たいということです。
このHTMLの出力は次のようになります。私が得ている方法(範囲内) ユーザー/レンジ/最初の訪問での合計訪問(範囲内かどうか)/最近の訪問
をこれは、はるかにこれを行うことにより、次のとおりです。
$result = mysql_query("
SELECT user, MIN(timestamp), MAX(timestamp), count(user)
AS tagCount FROM " . $table . "
WHERE date(timestamp) BETWEEN '" . $startdate . "' AND '" . $enddate . "'
GROUP BY user
ORDER BY " . $orderby . " " . $order) or die(mysql_error());
私は、ループ:
$i = 1;
while($row = mysql_fetch_array($result)){
$user_name = str_replace("www.", "", $row['user']); // removing www from usernames
if($i % 2 != 0) // used for alternating row colors
$iclass = "row";
else
$iclass = "row-bg";
echo "<div class=\"" . $iclass . "\"><div class=\"number\">" . $i . "</div><div class=\"number\">" . $row['tagCount'] . "</div><div class=\"name\">" . "<a href=\"http://" . $row['user'] . "\" target=\"_blank\">" . $server_name . "</a>" . "</div>" . "<div class=\"first\">" . $row['MIN(timestamp)'] . "</div><div class=\"recent\">" . $row['MAX(timestamp)'] . "</div></div>";
$i++;
}
MIN(タイムスタンプ)上記グラブで範囲内の最初のタイムスタンプ - 私がGRAにしたいですb範囲にかかわらず最初のタイムスタンプ。
どうすればいいですか?
TetonSigで#eventlogを置き換えることができ、私は間違いなく取得複数のユーザーが同時にデータにアクセスしている可能性があるため、一時テーブルを生成するという考え方がありましたが、これをユーザープロファイルまたはセッションに結びつける必要がありました。とにかくテーブルを追加せずにこれを行うには? – user1115569
テンポラリテーブルはサンプルデータをステージアップするための例です。既存のテーブルでこれを行うことができるのは、テーブル名が何であれ#eventlogを置き換えるだけです。 – TetonSig
TetonSig、私はちょうどこれを研究室に持ち帰り、必要なものを正確に作成することができました。私はまだあなたが前に出されたものの構文を理解するために働いていますが、これは私の学習を1時間に数千マイルも早送りしました。ありがとうございました! – user1115569