将三个SQL语句合并为一个

时间:2016-01-13 05:57:53

标签: php mysql sql

我已经看过将两个表组合成一个带有SQL的语句,但我在网上找到的组合3个或更多的例子看起来很复杂,让我掌握...

我希望将3个陈述合并为一个,我相信它应该是可能的。 这是我想要实现的一些伪代码。

Select tagId from tags where tagName = "test"
->
Select photoId from photoTags where tagId = (tagId from previous statement)
->
Select * from pictures where id = (photoId from previous statement)

如何将其合并为一个陈述?我对使用JOIN有一个简单的了解,但我不理解多个连接。

作为一个陈述,我试图完成的是什么?

由于

3 个答案:

答案 0 :(得分:2)

您应该能够使用此类查询访问图片:

SELECT p.* 
FROM pictures p
    INNER JOIN photoTags pt on pt.photoId = p.id  -- Join tables pictures and photoTags
    INNER JOIN tags t on pt.tagId = t.tagId -- join tables photoTags and tags
WHERE t.tagName = "test"

它会从pictures表中选择所有列,并按tagName="test"

过滤数据

答案 1 :(得分:0)

SELECT T.TagId,PT.PhotoId,P.* FROM Tag T 
JOIN photoTags PT On PT.tagId =T.TagId
JOIN pictures P On P.Id=PT.PhotoId
WHERE T.TagName="test"

答案 2 :(得分:0)

试试这个

SELECT p.* 
FROM pictures p
    JOIN photoTags pt on pt.photoId = p.id 
    JOIN tags t on pt.tagId = t.tagId 
WHERE t.tagName = "test"