2017-12-12 3 views
-1

Ich habe einige Tabellen wie in Bild gezeigt, ich möchte die Ausgabe wie in der letzten Tabelle gezeigt erreichen. Ist es möglich, es zu erreichen unter Verwendung einer SQL Server-Abfrage mit aus SPsql hierarchische Abfragen

Diagram of table

BB

+2

Die meisten Menschen hier formatierten Text wollen, keine Bilder – jarlh

+0

, warum Sie nicht inneren verwenden verbinden dieses Ergebnis zu erreichen –

Antwort

0

Sie diese Art und Weise in den folgenden gegeben tun können. Ich nahm einige Freiheiten als Beziehung von Ihnen gegeben war nicht ganz klar: (. Oder Links zu Bildern)

IF OBJECT_ID ('role') IS NOT NULL 
    DROP TABLE role 
GO 

CREATE TABLE role 
    (
    roid INT NULL, 
    roname VARCHAR (20) NULL 
    ) 
GO 

IF OBJECT_ID ('rolechild') IS NOT NULL 
    DROP TABLE rolechild 
GO 

CREATE TABLE rolechild 
    (
    parentroid INT NULL, 
    childroid INT NULL 
    ) 
GO 

IF OBJECT_ID ('rolechildrel') IS NOT NULL 
    DROP TABLE rolechildrel 
GO 

CREATE TABLE rolechildrel 
    (
    roid INT NULL, 
    rtroid INT NULL 
    ) 
GO 

IF OBJECT_ID ('rt') IS NOT NULL 
    DROP TABLE rt 
GO 

CREATE TABLE rt 
    (
    rtid INT NULL, 
    rtname VARCHAR (20) NULL 
    ) 
GO 

IF OBJECT_ID ('urore') IS NOT NULL 
    DROP TABLE urore 
GO 

CREATE TABLE urore 
    (
    uid INT NULL, 
    roid INT NULL 
    ) 
GO 

IF OBJECT_ID ('usern') IS NOT NULL 
    DROP TABLE usern 
GO 

CREATE TABLE usern 
    (
    uid INT NULL, 
    uname VARCHAR (20) NULL 
    ) 
GO 


SELECT u.uname,r.roname,rt.rtname 
FROM 
usern u JOIN urore ur ON (u.uid = ur.uid) 
JOIN role r ON (ur.roid = r.roid) 
JOIN rolechild rc ON (r.roid = rc.parentroid) 
JOIN rolechildrel rcl ON (rc.childroid = rcl.roid) 
JOIN rt ON rcl.rtroid = rt.rtid