在SQL select语句中具有多个内部联接是否很好?

时间:2019-02-18 04:11:22

标签: sql asp.net sql-server

enter image description here我有一个看起来像这样的表:

CREATE TABLE [dbo].[Devices]
(
    [Device_ID] [nvarchar](10) NOT NULL,
    [Series_ID] [int] NOT NULL,
    [Start_Date] [date] NULL,
    [Room_ID] [int] NOT NULL,
    [No_Of_Ports] [int] NULL,
    [Description] [text] NULL
);

我想在表格视图中显示此表,但是我不想显示[Series_ID]列,而是要显示3列Series_NameBrand_NameType_Name另外3列,而不是显示[Room_ID]列,我想显示另外3列的3列Site_NameFloor_NameRoom_Name

我可以通过6个以上的内部联接来做到这一点。我是SQL的初学者,我想知道在性能上在一条语句中具有很多内部联接的权利吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

根据您的查询解释,我假设它将是2个内部联接,而不是6个。

如果Series_Name,Brand_Name和Type_Name位于一个表中,且 Series_Id ForeignKey ,那么您将需要一个联接。

类似地,如果Site_Name,Floor_Name,Room_Name位于以 Room_ID 作为ForeignKey的一个表中,那么您将需要另一个innjer联接。

同样,在不了解其他引用表的表结构的情况下,很难确定连接的确切数目。