连接多个表,但每行给出多个结果

时间:2014-01-26 15:34:55

标签: sql sql-server

您好我正在尝试连接多个表但我的主表包含空值作为外键所以如果我想要我的所有关于我的artikelen的信息我必须检查null。当我执行我的查询时,我收到了我的信息,但是线路显示的次数是三次左右。我无法弄明白为什么

SELECT DISTINCT Artikelen.*, BtwTarieven.*, Eenheden.*, Categorieen.*, Leveranciers.IdLeverancier, Leveranciers.Naam, Leveranciers.Actief
FROM Artikelen 
    JOIN BtwTarieven
        ON (BtwTarieven.IdBtwTarief = Artikelen.IdBtwTarief OR Artikelen.IdBtwTarief IS NULL)
    JOIN Eenheden
        ON (Eenheden.IdEenheid = Artikelen.IdEenheid OR Artikelen.IdEenheid IS NULL)
    JOIN Categorieen
        ON (Categorieen.IdCategorie = Artikelen.IdCategorie OR Artikelen.IdCategorie IS NULL)
    Join Leveranciers
        ON (Leveranciers.IdLeverancier = Artikelen.IdStandaardLeverancier OR Artikelen.IdStandaardLeverancier IS NULL)

1 个答案:

答案 0 :(得分:1)

SELECT DISTINCT Artikelen.*, BtwTarieven.*, Eenheden.*, Categorieen.*, Leveranciers.IdLeverancier, Leveranciers.Naam, Leveranciers.Actief
FROM Artikelen 
LEFT JOIN BtwTarieven
    ON (BtwTarieven.IdBtwTarief = Artikelen.IdBtwTarief )
LEFT JOIN Eenheden
    ON (Eenheden.IdEenheid = Artikelen.IdEenheid )
LEFT JOIN Categorieen
    ON (Categorieen.IdCategorie = Artikelen.IdCategorie )
LEFT JOIN Leveranciers
    ON (Leveranciers.IdLeverancier = Artikelen.IdStandaardLeverancier )