ユーザーに関連する最新のレコードを取得するクエリを作成しようとしています。ここに私の試みはまた特定のユーザーに関連する最新の行を返すクエリを作成します。
"SELECT *
FROM (
SELECT *
FROM mytable
ORDER BY id
DESC LIMIT 1)
WHERE userid = $userID";
ユーザーに関連する最新のレコードを取得するクエリを作成しようとしています。ここに私の試みはまた特定のユーザーに関連する最新の行を返すクエリを作成します。
"SELECT *
FROM (
SELECT *
FROM mytable
ORDER BY id
DESC LIMIT 1)
WHERE userid = $userID";
可能性があります:
Select * from table
Where id =
(Select Max(Id) from table
where userid = $userID)
使用トップ(1)
Select TOP(1) * FROM table ORDER BY id DESC
'TOP'はSQL Server用です。 MySQLには 'LIMIT'があります。 (そしてANSI SQLには 'FETCH FIRST'があります。) – jarlh
それは正しいですが、私はあなたに正しいと思われるsqlを表示するタイトルを読みました –
は試してみてください。
SELECT *
FROM mytable
WHERE userid = $userID
ORDER BY id DESC
LIMIT 1
単にサブクエリをスキップ:
SELECT *
FROM mytable
WHERE userid = $userID
ORDER BY id DESC
LIMIT 1
サブクエリをスキップします。 – jarlh
このクエリでは、すべてのユーザーの最後のレコードを取得し、次にこの1つのレコードを目的のユーザーでフィルタリングしています。これはエラーです。 –
あなたの試行で何が間違っていますか?取得しているエラーを追加してください。派生テーブルに欠けているテーブルエイリアスに関連しています。 @jarlhのように、派生テーブルを使用する必要はありません。 – ughai