首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内连接3表

内连接3表
EN

Stack Overflow用户
提问于 2015-01-04 23:01:35
回答 1查看 125关注 0票数 0

我有3张桌子,我想知道怎样才能用这种设置进行三重连接(如果有的话)?

代码语言:javascript
复制
First Table: LOCATIONS_TABLE
locationID
websiteID
locationCity
locationState
locationCountry
locationURL

Second Table: PREF_TABLE
pref_ID
Pref_LocationID
Pref_WebsiteID
Pref_SavedTitle

Third Table: WEBSITECATEGORY_TABLE
wbcatID
websiteID
WBLinkCategoryParentID
WBLinkTitle
WBLinkURL

在第二个表中,用户对于他们保存的位置具有一个存储首选项( Pref_SavedTitle ),以供以后参考。

我拥有的当前SQL语句只执行双重内部连接,它是.

代码语言:javascript
复制
SELECT 
LOCATIONS_TABLE.LocationWebsiteID, 
LOCATIONS_TABLE.locationCity, 
LOCATIONS_TABLE.locationState, 
LOCATIONS_TABLE.locationCountry, 
LOCATIONS_TABLE.locationURL, 
PREF_TABLE.Pref_SavedTitle 
FROM PREF_TABLE INNER JOIN LOCATIONS_TABLE 
ON PREF_TABLE.Pref_LocationID = LOCATIONS_TABLE.LocationID 
WHERE PREF_TABLE.Pref_SavedTitle = 'AlabamaPREF'

这会返回……的样本数据。

代码语言:javascript
复制
LocationWebsiteID = 2 
locationCity = Mobile 
locationState = Alabama 
locationCountry = United States
locationURL = alabama.bmv.org
Pref_SavedTitle - AlabamaPREF 

第三表有……的样本数据。

代码语言:javascript
复制
wbcatID = 1
websiteID = 2
WBLinkCategoryParentID = 0
WBLinkTitle = Alabama Resources
WBLinkURL = /alabama-resources

这正好完成了它需要做的事情,即返回与先前存储在LOCATION_TABLE中的LocationID相等的所有PREF_TABLE项。

然而,我有一个第三个表,我需要添加到这个等式(这是第三个表)上面列出的。我需要能够以某种方式链接websiteID上的第三个表,以便它知道WBLinkTitle和WBLinkURL与特定的websiteID相关联。

最后的输出..。我需要能把结果拉出来.

代码语言:javascript
复制
LOCATIONS_TABLE.websiteID, 
LOCATIONS_TABLE.locationURL, 
WEBSITECATEGORY_TABLE.WBLinkTitle, 
WEBSITECATEGORY_TABLE.WBLinkURL

根据我的样本数据..。

代码语言:javascript
复制
websiteID = 2
locationURL = alabama.dmv.org
WBLinkTitle = Alabama Resources
WBLinkURL = /alabama-resources

SQLFIDDLE EXAMPLE

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-04 23:06:55

更新v-1

我已经根据您的评论更新了答案(现在第三个表是内部连接到PREF_TABLE,附加条件添加到第一个连接:AND PREF_TABLE.Pref_WebsiteID = LOCATIONS_TABLE.LocationWebsiteID,以防止所有位置加载):

代码语言:javascript
复制
SELECT 
    LOCATIONS_TABLE.LocationWebsiteID, 
    LOCATIONS_TABLE.locationCity, 
    LOCATIONS_TABLE.locationState, 
    LOCATIONS_TABLE.locationCountry, 
    LOCATIONS_TABLE.locationURL, 
    PREF_TABLE.Pref_SavedTitle,
    WEBSITECATEGORY_TABLE.WBLinkTitle,
    WEBSITECATEGORY_TABLE.WBLinkURL
FROM 
    PREF_TABLE 
    INNER JOIN LOCATIONS_TABLE 
        ON PREF_TABLE.Pref_LocationID = LOCATIONS_TABLE.LocationID
           AND PREF_TABLE.Pref_WebsiteID = LOCATIONS_TABLE.LocationWebsiteID
    INNER JOIN WEBSITECATEGORY_TABLE 
        ON WEBSITECATEGORY_TABLE.websiteID = PREF_TABLE.Pref_WebsiteID 
WHERE 
    PREF_TABLE.Pref_SavedTitle = 'AlabamaPREF'
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27771315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档