Avatar billede yezper Nybegynder
25. februar 2003 - 15:17 Der er 7 kommentarer og
1 løsning

Join problemer

Hej Eksperter!

Jeg har et problem med følgende SQL sætning:

SELECT e.ID AS ElementID, e.ElementName AS ElementName,
    e.Status AS EStatus, p.ID AS PropertyID,
    p.StyleSheetElementId AS PEID, p.PropertyName AS PName,
    p.PropertyValue AS PValue, p.Status AS PStatus
FROM Design_StyleSheets_Elements e INNER JOIN
    Design_StyleSheets_Property p ON
    e.ID = p.StyleSheetElementId
WHERE e.StyleSheetId = 1 AND e.Status = 100 AND
    p.Status = 100
ORDER BY ElementName;

Den giver, efter at være kørt gennem min function i ASP, følgende HTML:

<style type="text/css">
BODY {
  font-family: verdana,sans-serif;
}
BODY {
  font-size: 12px;
}
BODY {
  color: #000000;
}
</style>

hvilket ikke er helt optimalt. Resultatet skulle jo gerne være:

<style type="text/css">
BODY {
  font-family: verdana,sans-serif;
  font-size: 12px;
  color: #000000;
}
</style>

Jeg kan ikke lige komme på, hvad det er i min SQL sætning jeg skal ændre for
at få dette resultat. Er der nogen her, som kan hjælpe mig?

Tabelopbygningen ser forresten således ud:
--- Design_StyleSheets_List ---
CREATE TABLE dbo.Design_StyleSheets_List
(
  ID int NOT NULL IDENTITY (1, 1),
StyleName varchar(50) NOT NULL,
Status smallint NOT NULL
) ON [PRIMARY]

INSERT INTO Design_StyleSheets_List
    (StyleName, Status)
VALUES ('Default Style Sheet', 100)

--- Design_StyleSheets_Elements ---
CREATE TABLE dbo.Design_StyleSheets_Elements
(
  ID int NOT NULL IDENTITY (1, 1),
StyleSheetId int NOT NULL,
ElementName varchar(100) NOT NULL,
Status smallint NOT NULL
) ON [PRIMARY]

INSERT INTO Design_StyleSheets_Elements
    (StyleSheetId, ElementName, Status)
VALUES (1, 'BODY', 100)

--- Design_StyleSheets_Property ---
CREATE TABLE dbo.Design_StyleSheets_Property
(
  ID int NOT NULL IDENTITY (1, 1),
StyleSheetElementId int NOT NULL,
PropertyName varchar(200) NOT NULL,
PropertyValue varchar(200) NOT NULL,
Status smallint NOT NULL
) ON [PRIMARY]

INSERT INTO Design_StyleSheets_Property
    (StyleSheetElementId, PropertyName, PropertyValue, Status)
VALUES (1, 'font-family', 'verdana,sans-serif', 100)

INSERT INTO Design_StyleSheets_Property
    (StyleSheetElementId, PropertyName, PropertyValue, Status)
VALUES (1, 'font-size', '12px', 100)

INSERT INTO Design_StyleSheets_Property
    (StyleSheetElementId, PropertyName, PropertyValue, Status)
VALUES (1, 'color', '#000000', 100)

På forhånd tak.

--
Mvh. Jesper
Avatar billede erikjacobsen Ekspert
25. februar 2003 - 15:21 #1
WHERE e.StyleSheetId = 1 AND e.Status = 100 AND
    p.Status = 100 and e.StyleSheetId = p.StyleSheetElementId
Avatar billede techhouse Nybegynder
25. februar 2003 - 15:23 #2
Hvad giver den når du kører den i Query Analyser?
/Thomas
Avatar billede yezper Nybegynder
25. februar 2003 - 16:07 #3
erikjacobsen: det giver samme resultat som før.
techhouse:

ElementID  ElementName  EStatus PropertyID  PEID        PName        PValue              PStatus
----------- ------------ ------- ----------- ----------- ------------ -------------------- -------
1          BODY        100    1          1          font-family  verdana,sans-serif  100
1          BODY        100    2          1          font-size    12px;                100
1          BODY        100    3          1          color        #000000              100

(3 row(s) affected)
Avatar billede techhouse Nybegynder
25. februar 2003 - 16:33 #4
Så er det jo nok desværre din ASP som giver din problemerne og ikke SQLen!
/Thomas
Avatar billede yezper Nybegynder
25. februar 2003 - 18:14 #5
Ja, det skulle sørme løses i ASP koden :-)
Avatar billede techhouse Nybegynder
25. februar 2003 - 18:27 #6
Hva med mine point?
/Thomas
Avatar billede yezper Nybegynder
25. februar 2003 - 18:52 #7
Du må jo oprette et svar, så jeg kan gi' dig dem :-)
Avatar billede techhouse Nybegynder
25. februar 2003 - 20:32 #8
Så skulle det være klaret.
/Thomas
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester