我有这个图表应该解释我的情况我需要一些帮助才能加入3个表格,我不知道怎么做这样的事情:
所以我可以通过这样做来检索记录的while循环:
<img src="<?php echo $row['filename']; ?>" alt="" />
Album: <?php echo $row['album_name']; ?>
AlbumID: <?php echo $row['album_id']; ?>
答案 0 :(得分:6)
使用INNER JOIN会阻止返回没有图片的相册。 ORDER BY ... DESC将按降序对结果进行排序,但我不确定如何仅返回最后一条记录。它可能需要某种ORDER BY,GROUP BY和TOP的组合。
SELECT
album_table.album_id,
album_table.album_name,
images_table.filename
FROM album_table
INNER JOIN images_table ON images_table.album_id = album_table.album_id
WHERE album_table.user_id = uid
ORDER BY images_table.date DESC
答案 1 :(得分:0)
答案 2 :(得分:0)
@lolwut:尝试 -
SELECT
album_table.album_id, album_table.album_name, images_table.filename
FROM album_table
INNER JOIN images_table ON images_table.album_id = album_table.album_id
INNER JOIN users_table ON users_table.uid = album_table.user_id
WHERE (users_table.uid = ' . $uid . ')
ORDER BY images_table.date DESC
$uid
应该是当前登录用户的会话...或者如果您想要返回所有用户的信息,则可以完全保留WHERE
子句。
答案 3 :(得分:0)
实际上,在这种情况下,你只需要加入两个表(一般来说,你做的连接越多越好)。
由于您知道用户ID,因此您可以直接从相册表名称中查询。
如果您的users_table恰好有另一列“user_name”,并且您想要搜索该列,那么您需要加入users表。
SELECT filename, album_name, album_id
FROM album_table at, images_table it
AND at.album_id = it.album_id
AND at.user_id = $user_id