如何从sql中的四个表中进行选择?
Posted
技术标签:
【中文标题】如何从sql中的四个表中进行选择?【英文标题】:How to Select from four tables in sql? 【发布时间】:2015-04-25 09:29:55 【问题描述】:这是表结构
链接
链接 ojectidfk uidfk项目
项目ID uidfk 项目名称试试
useridfk ojectidfk goyidfk血腥
戈里德 血腥的名字我想要做的是从ojects
中选择ojectname
,其中plinks projectidfk
在ojects 和plinks
中是相同的,但是从尝试中选择所有内容,其中ojectid
等于ojectsid
,其中pinks link = 8493284 AND gory id = try goryidfk
【问题讨论】:
【参考方案1】:Select obj.objectnamem, try.* from objects as obj
inner join plinks on plinks.projectidfk = obj.ojectid
inner join try on try.projectidfk = obj.ojectid
inner join gory on gory.goryid = try.goryidfk
where plinks.link = 8493284
【讨论】:
【参考方案2】:尝试加入所有四个表并使用 where 子句作为链接:
SELECT o.objectName, t.*
FROM ojects o INNER JOIN plinks p ON o.ojectId = p.ojectidfk
INNER JOIN try t ON o.ojectid = t.ojectidfk
INNER JOIN gory g ON g.goryid = t.goryidfk
WHERE p.link = 8493284
【讨论】:
【参考方案3】:使用简单的JOIN
应该可以为您做到这一点。您只需通过约束连接表,然后从这些表中检索您想要的任何内容。
请注意,如果您编写伪代码,它看起来与实际代码非常相似。您需要使用INNER JOINs
,因为您想确定存在共享所有这些关系并符合您在plinks.link
上的条件的行。
SELECT o.ojectname, t.*
FROM
ojects o
INNER JOIN plinks p ON p.ojectidfk = o.ojectid
INNER JOIN try t ON t.ojectidfk = o.ojectid
INNER JOIN gory g ON g.goryid = t.goryidfk
WHERE
p.link = 8493284
【讨论】:
以上是关于如何从sql中的四个表中进行选择?的主要内容,如果未能解决你的问题,请参考以下文章