私は現在、データベースからいくつかのデータを選択するためにPHP/MySQLを使用しています。私の現在のSELECT文は次のとおりです。MySQL Selectステートメント - GROUP BY /ユニーク
mysql_query("SELECT * FROM tblpm WHERE receiver_id ='$usrID' GROUP BY
thread_id ORDER BY unique_id DESC") or die(mysql_error());
同じ「スレッドID」を持っているいくつかの列が一つだけ「スレッドID」列が選択されるように、このように、私は、GROUP BYを使用しています、があります。グループ化ですべてうまく動作しますが、最初の「スレッドID」列が選択されていますが、最新のものではありません(これが私が望むものです)。
thread_id unique_id
222 1
222 2
222 3
222 4
私はGROUP BYを行うと、私はそれはユニークなID 4(最も新しく作成した列)に1を取得したいと思います:
例えば、同じなthread_idと4列すべてがあります一意のID 1(作成された最も古い列)ではありません。
私のSELECTステートメントでこれを達成する方法に関するアイデアはありますか?ありがとう。
あなたのクエリは、SQLインジェクションの脆弱性を有することができます()。返信用 –
ありがとう: $データ=するmysql_query( "SELECT tblpm.thread_id、tblpm.receiver_id、tblpm.title、MAX(tblpm.content)、tblpm.date_sent、tblpmを:ここで は私が現在使用しているものです.sender_id UNIQUE_IDとして、tblpm.read_pref、MAX(tblpm.id)、FIRST_NAME AS tblusers.usrFirst、tblpm LEFT OUTER FROM LAST_NAME AS tblusers.usrLastはtblpm.sender_id = tblusers.usrID WHERE receiver_id = ON tblusers をJOIN '$ usrID' GROUP BY thread_id ORDER BY unique_id DESC ") またはdie(mysql_error()); –
しかし、最新の「コンテンツ」列を表示しようとすると、最新のものではなく最初の「コンテンツ」フィールドが表示されます。ご覧のとおり、私はMAX(tblpm.content)を呼び出そうとしていますが、それは仕事を完了させるようには見えません。これを行う方法に関するアイデア? –