SQL:将联接表的结果合并到查询中的一个字段中

时间:2011-09-07 18:48:06

标签: sql

由于我投入了一个新项目,我几个月没有在工作中遇到任何疑问,所以我完全不知道如何做以下事情:

我有一个名为“eJournals”的表,第二个名为“providerJoins”,第三个名为“provider”。

字段如下:

电子期刊

  1. eJournalID
  2. 标题
  3. providerJoins

    1. joinID
    2. providerID
    3. eJournalID
    4. 提供商

      1. providerID
      2. 的providerName
      3. 我的问题是,在查询中需要发生什么才能得到这样的结果:

        eJournalID      Title         providerName
        1               blah          providerblah
        2               blah2         providerblah2
        3               blah3         providerblah3
        etc....
        

        我确信这个解决方案会让我头疼并说:“哦,是啊,但是......”就像我说的那样,我几个月来没有使用过sql。

5 个答案:

答案 0 :(得分:1)

你应该可以做一些简单的事情:

SELECT J.eJournalID, J.Title, P.ProviderName FROM eJournals J
        JOIN ProviderJoins PJ ON PJ.eJournalID = J.eJournalID
        JOIN Providers P ON P.ProviderId = PJ.ProviderID

答案 1 :(得分:0)

SELECT e.eJournalID, e.Title, p.providerName
FROM eJournals e
INNER JOIN providerJoins j ON j.joinID = e.eJournalID
INNER JOIN providers p ON p.providerID = j.providerID

应该这样做

答案 2 :(得分:0)

您必须在eJournals和providersJoins表之间建立一些字段关系才能使其工作 - 否则无法确定哪个providerName与哪个电子期刊相关。

鉴于这种关系是eJournalID,下面的内容应该有效......


select e.eJournalID, e.Title, p.providerName
from eJournals e, providerJoins pj, providers p
where e.eJournalID = pj.eJournalID
and pj.providerID = p.providerID

答案 3 :(得分:0)

我想你想要这样的东西?

SELECT 
    e.eJournalID,
    e.Title,
    p.ProviderName
FROM
    eJournals e
    INNER JOIN providerJoins pj ON e.eJournalID = pj.eJournalId
    INNER JOIN providers p ON pj.providerId = p.providerId

答案 4 :(得分:0)

尝试:

SELECT DISTINCT e.eJournalID, e.Title, p.providerName
FROM eJournals AS e JOIN providerJoins AS pj ON e.eJournalID = pj.eJournalID
JOIN providers AS p ON pj.providerID = p.providerID

注意:“DISTINCT”应删除结果中的任何重复行。