SQL:从多个表中获取数据

时间:2012-10-09 21:58:18

标签: sql

我有以下内容:

SELECT  
   f.Korsnamn AS Foto, ä.ID AS ÄrendeID, ä.Kortnamn AS Ärende, l.Kortnamn AS Labb
FROM    
   Foto f, Ärendet ä, Labbrapport l
WHERE   
   f.ÄrendeID = ä.ID

返回:

Foto  ÄrendeID  Ärende  Labb
1123       10   asd      sdf
korset     12   234      sdf
111        13   213      sdf
asd         9   123123   sdf

在我的Labbrapport表中,只有一个条目,外键为Ärende.ID = 12,但它也列在ÄrendeID 10,13和9上?我该怎么做才能获得类似于此的输出:

Foto    ÄrendeID  Ärende    Labb
1123       10       asd 
korset     12       234      sdf
111        13       213
asd         9       123123  

干杯

3 个答案:

答案 0 :(得分:0)

SELECT f.Korsnamn AS Foto, ä.ID AS ÄrendeID, ä.Kortnamn AS Ärende, l.Kortnamn AS Labb
FROM Foto f, Ärendet ä, Labbrapport l
WHERE f.ÄrendeID = ä.ID
AND l.ÄrendeID = f.ÄrendeID

答案 1 :(得分:0)

joinLabbrapport之间添加Ärendet条件。例如下面:

SELECT f.Korsnamn AS Foto, ä.ID AS ÄrendeID, ä.Kortnamn AS Ärende, 
       l.Kortnamn AS Labb
FROM Foto f, Ärendet ä, Labbrapport l
WHERE f.ÄrendeID = ä.ID
      AND ä.ID = l.ID;

请在上述查询中使用join key的{​​{1}}列。

答案 2 :(得分:0)

使用LEFT JOIN或RIGHT JOIN取决于您的主要表格。在您的情况下使用LEFT JOIN

SELECT f.Korsnamn AS Foto, ä.ID AS ÄrendeID, ä.Kortnamn AS Ärende, 
   l.Kortnamn AS Labb
FROM Foto f 
INNER JOIN Ärendet ä ON f.ÄrendeID = ä.ID
LEFT JOIN Labbrapport l ON ä.ID = l.ID