Php 连接三个表

Php 连接三个表,php,mysql,sql,join,jointable,Php,Mysql,Sql,Join,Jointable,我有这个图表,它应该可以解释我的情况。我需要一些帮助来连接3个表,我不知道如何做这种事情: 因此,通过执行以下操作,我可以通过while循环检索记录: <img src="<?php echo $row['filename']; ?>" alt="" /> Album: <?php echo $row['album_name']; ?> AlbumID: <?php echo $row['album_id']; ?> “alt=”“/> 专

我有这个图表,它应该可以解释我的情况。我需要一些帮助来连接3个表,我不知道如何做这种事情:

因此,通过执行以下操作,我可以通过while循环检索记录:

<img src="<?php echo $row['filename']; ?>" alt="" />

Album: <?php echo $row['album_name']; ?> 
AlbumID: <?php echo $row['album_id']; ?>
“alt=”“/>
专辑:
AlbumID:

我相信
内部连接是您需要的

这个网站就是一个很好的例子

@lolwut:试试看--

$uid
应该是当前登录的用户会话…或者如果您想返回所有用户的信息,可以将
WHERE
子句完全删除。

使用将阻止返回没有图像的相册。将按降序排列结果,但我不确定如何只返回最后一条记录。它将d采取某种形式的顺序组合,也许还有

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

实际上,在这种情况下,您只需要连接两个表(根据一般经验,连接越少越好)

因为您知道用户ID,所以可以直接从相册表名称中查询该ID

如果您的users\u表碰巧有另一列“user\u 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

你是在询问SQL语法还是关于连接是否是正确的操作的建议,还是什么?SQL语法很有用,因为我可以同时连接两个表。但3是我不能做的。这不是重新标记我问题的人的家庭作业。许多关于堆栈溢出的人不喜欢W3学校,我发现了困难的方法。是的,我知道。这不是一个很好的来源wever为许多简单的事情提供了易于阅读的示例。我认为w3schools最大的问题是它的HTML/CSS部分过时了,而不是MySQL页面。@markus:我的意思是编写内部连接!(编辑以修复此问题)。即使没有关联的图像,左连接也可以用于返回相册。这是我一直在寻找的SQL语法。谢谢!@lolwut:如果您找到只返回最后一个图像的语法,请告诉我们。该语法非常有效,即使相册未被分配图像,它也会返回可以重播的
NULL
我还想说,如果你添加
按相册分组表,相册id
将防止重复,因为我刚刚经历了与
相册id
相关的重复,所以使用
按相册分组
将根据我的经验减少重复。你为什么不明确地编写查询你不参加吗?
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