このコードはありますが、これは大丈夫ですが、whileループを使わずに、簡単なクエリでよりうまくいくことができます。私はORDER BYの日付とGROUP BYのユーザーIDでそれを作ろうとしましたが、私はいつも間違った日付を取得します。あなたは私にあなたの解決策を教えてくれますか?私が持っているもの厥SQL - Order by - Group by - Distinct
:
$abfrage1 = "SELECT DISTINCT userid FROM updates WHERE city='Berlin'";
$ergebnis1 = mysql_query($abfrage1);
if($ergebnis1 == TRUE)
{
$menge1 = mysql_num_rows($ergebnis1);
if($menge1 != 0)
{
while($row1=mysql_fetch_object($ergebnis1))
{
$abfrage2 = "SELECT * FROM updates WHERE userid='$row1->userid' ORDER BY date DESC LIMIT 1";
$ergebnis2 = mysql_query($abfrage2);
if($ergebnis2 == TRUE)
{
$menge2 = mysql_num_rows($ergebnis2);
if($menge2 != 0)
{
$row2=mysql_fetch_object($ergebnis2);
echo "$row2->id - $row2->userid - $row2->text - $row2->date<br>";
}
}
}
}
}
IAMのはそのような何かを探しているが、常に間違った日付を取得し、私が言ったように:
SELECT * FROM updates WHERE city='Berlin' GROUP BY userid ORDER BY date
または
SELECT * FROM (SELECT * FROM updates WHERE city='Berlin' ORDER BY date DESC) as temp_info GROUP BY userid
EDIT : だから、私はすべてのユーザーから最後のアクティビティを取得したいが、最後のアクティビティのみを取得したい。 ユーザーはLIMIT 1、ただし無制限のユーザー。だから私はそのユーザーからの最後のアクティビティを取得するために、最初にORDER BY日付をDISTINCT(OR GROUP BY)したいので、ユーザーごとに1つの結果しか得られません。 私はtry by order by - Group by - 独特な、しかし、私はいつも間違った日付と間違った活動を得る。サブクエリを使用しようとしても、GROUP BYはORDER BYを殺すようです。 GROUP BYはORDER BY日付DESCを無視しているようです。 ユーザーごとに1つのアクティビティが表示されますが、最後のアクティビティはありません。 GROUP BY useridは、最初のORDER BY日付とは無関係に、そのユーザーからの最初のエントリ(id)を単独で受け取ります。
id userid date text
01 01 2015-04-14 bla
02 01 2015-04-15 bla
03 02 2015-04-16 bla
04 01 2015-04-17 bla
05 02 2015-04-18 bla
06 02 2015-04-19 bla
07 02 2015-04-20 bla
08 03 2015-04-21 bla
09 01 2015-04-22 bla
10 01 2015-04-23 bla
What i want:
10 01 2015-04-23 bla
08 03 2015-04-21 bla
07 02 2015-04-20 bla
But this is what i get:
01 01 2015-04-14 bla
03 02 2015-04-16 bla
08 03 2015-04-21 bla
私はORDER BYのIDとORDER BYのIDを試しましたが、GROUP BYのユーザーIDは自分の考えをします。
ありがとうございました!最終的な解決策:
SELECT u1.* FROM updates u1 JOIN
(SELECT MAX(id) as tempid, userid FROM updates WHERE city='Berlin' GROUP BY userid)
u2 ON u1.id = u2.tempid ORDER BY u1.datum DESC
URようこそ!!!!! – Hogan
(私たちが問題の原因を知る手伝いをするためには、日付が間違っているとは言いますが、どのように、何を期待しているのか、入力が何であるかなどは決して言わないでください。答えることができる質問をしてください。) – Hogan
私は自分の投稿を編集しましたので、私は何が必要なのかをより明確にしました! – Exo