2 人のテーブル ユーザーとアルバムがあります。ユーザーテーブルにはuser_id
主キーがあります。他のテーブルアルバムにはuser_id
、ユーザーが新しいアルバムをアップロードするたびにuser_id
外部キーとしてアップロードするため、複数の行があります。user_id
他のテーブル(アルバム)で他の結果セットを無視して、一度だけ選択したい。
どうすればこれを達成できますか?
SELECT album.* FROM album LEFT JOIN users ON user.id = album.id WHERE user.id = SOMEIDHERE
これでうまくいくと思いますが、作業するための情報があまり多くありません。
SELECT a.*, b.*
FROM users a
INNER JOIN album b
ON a.user_ID = b.user_ID
INNER JOIN
(
SELECT user_ID, MAX(photo_id) max_rec
FROM album
GROUP BY user_ID
) c ON b.user_ID = c.user_ID AND
b.photo_id = c.max_rec
SELECT *
FROM ( SELECT u.*, a.*
FROM users AS u
INNER JOIN album AS a
ON u.user_ID = a.user_ID
ORDER BY a.created DESC) AS h
GROUP BY user_ID
ORDER BY b.created DESC
->ORDER BY
あなたが望むどんな行でも。この場合、最新のものが選択されます。