Jeg takker for, at I gad at læse en noget ringe skrevet post igennem.
Men altså, når du skriver inter join, så mener du inner join vel.
Jeg mener self. INNER JOIN og ikke INTER JOIN.
Til projektet bruger jeg Mircosoft SQL Management Studio til at designe og udarbejde alt SQL (Stored Procedures, View, Diagrammer mm.)
Hvilket har virket rigtig fint, da jeg kan ændre i Querys efter behov.
Når jeg bruger Management Studio til at lave Views, kan jeg lave dem, jeg ønsker - med undtagelsen af de 2 tables.
Kode for min "tableB" taget ud fra et Query script i Management Studio
- CREATE TABLE [dbo].[Hosts](
- [host_id] [int] IDENTITY(1,1) NOT NULL,
- [host_ip] [nvarchar](50) NOT NULL,
- [host_name] [nvarchar](20) NOT NULL,
- [host_fqdn] [nvarchar](50) NOT NULL,
- [host_type] [nvarchar](50) NOT NULL,
- [host_logserver] [nvarchar](50) NOT NULL,
- CONSTRAINT [PK_Hosts] PRIMARY KEY CLUSTERED
- (
- [host_id] ASC
- )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
- ) ON [PRIMARY]
Kode for min "tableA"
- CREATE TABLE [dbo].[Server_set](
- [server_set_id] [int] IDENTITY(1,1) NOT NULL,
- [server_set_primary_id] [int] NOT NULL,
- [server_set_secondary_id] [int] NOT NULL,
- [server_set_system_id] [int] NOT NULL,
- CONSTRAINT [PK_Server_set] PRIMARY KEY CLUSTERED
- (
- [server_set_id] ASC
- )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-
- ALTER TABLE [dbo].[Server_set] WITH CHECK ADD CONSTRAINT [FK_Server_set_Hosts_primary] FOREIGN KEY([server_set_primary_id])
- REFERENCES [dbo].[Hosts] ([host_id])
- GO
-
- ALTER TABLE [dbo].[Server_set] CHECK CONSTRAINT [FK_Server_set_Hosts_primary]
- GO
-
- ALTER TABLE [dbo].[Server_set] WITH CHECK ADD CONSTRAINT [FK_Server_set_Hosts_secondary] FOREIGN KEY([server_set_secondary_id])
- REFERENCES [dbo].[Hosts] ([host_id])
- GO
-
- ALTER TABLE [dbo].[Server_set] CHECK CONSTRAINT [FK_Server_set_Hosts_secondary]
- GO
-
- )
Først havde jeg to tables mere, 1 til at "holde" på Host_primary og 1 anden til at "holde" på Host_secondary.
Men igen de Querys ovenfor at taget fra "script table as" CREATE TO.
Til sidst får I så lige mine så kaldte IN(T)ER join.
Den første er med Server_set og System, hvilket giver et ønskede data udtræk.
- SELECT dbo.Server_set.server_set_id, dbo.Server_set.server_set_primary_id, dbo.Server_set.server_set_secondary_id, dbo.Server_set.server_set_system_id,
- dbo.System.system_name
- FROM dbo.Server_set INNER JOIN
- dbo.System ON dbo.Server_set.server_set_system_id = dbo.System.system_id
Den næste er med de 2 tabler der giver et tomt data udtræk.
- SELECT dbo.Server_set.server_set_id, dbo.Server_set.server_set_primary_id, dbo.Server_set.server_set_secondary_id, dbo.Server_set.server_set_system_id,
- dbo.System.system_name, dbo.Hosts.host_name
- FROM dbo.Server_set INNER JOIN
- dbo.System ON dbo.Server_set.server_set_system_id = dbo.System.system_id INNER JOIN
- dbo.Hosts ON dbo.Server_set.server_set_primary_id = dbo.Hosts.host_id AND dbo.Server_set.server_set_secondary_id = dbo.Hosts.host_id
Igen en lang smøre - håber dog at dette giver bedre mening.
//Kasper
Indlæg senest redigeret d. 28.09.2011 08:42 af Bruger #16759