Avatar billede da_kbaz Nybegynder
12. marts 2006 - 17:52 Der er 7 kommentarer

Data fra 2 tabeller og sortere - Ikke flette

Hej eksperter,

Jeg har to tabeller (Contents, ModuleFrontends) som jeg gerne vil have informationer fra i én query, så jeg kan sortere.

Tabellerne er ikke relationelle, så informationerne skal ikke flettes sammen.

Derudover skal der sorteres i dem efter Contents.pageTitle og ModuleFrontends.ModuleName.


Hvordan gøres dette?
Avatar billede kjulius Novice
12. marts 2006 - 20:03 #1
¿Que? Jeg forstår ikke, hvad du mener.

Du vil have dem i samme forespørgsel, men de er ikke relaterede?

Ønsker du dem knyttet sammen i en UNION? Så skal felterne være i samme format. Er de det? Hvordan ser tabellerne ud?
Avatar billede da_kbaz Nybegynder
13. marts 2006 - 00:43 #2
Lad os antage, at der er 2 resultater i Contents-tabellen, og 3 resultater i ModuleFrontends-tabellen. Så efter en forespørgsel er mit mål, at have ét resultat bestående af 5 recordset, sorteret efter Contents.pageTitle og ModuleFrontends.ModuleName.

Håber det gjorde det lidt klarere?
Avatar billede da_kbaz Nybegynder
13. marts 2006 - 01:18 #3
Måske lidt baggrund om, hvad query'en skal bruges til, vil hjælpe på forståelsen.

Er ved at lave et CMS. I den forbindelse skal man kunne angive en startside på en template. Enten en oprettet side i CMS'et, eller et frontend module, som er installeret.

Dvs, jeg skal bruge en liste over alle CMS-sider der er oprettet + alle frontend moduler som er installeret i systemet. De ligger i to forskellige tabeller. Jeg vil gerne have hentet en liste over de her CMS-sider og frontend moduler, så jeg kan vise dem i alfabetisk rækkefølge.
Avatar billede da_kbaz Nybegynder
13. marts 2006 - 01:36 #4
Stikordet "Union" var lige dét der skulle til for, at løse mit problem. Smid et svar :-)

Løsning:

SELECT idContents AS id, pageTitle AS name, 'Contents' AS itemType
FROM Contents
UNION
SELECT idModuleFrontends AS id, moduleFrontendName AS name, 'ModuleFrontends' AS itemType
FROM ModuleFrontends
ORDER BY name
Avatar billede da_kbaz Nybegynder
13. marts 2006 - 01:42 #5
Men så har jeg egentlig et lille bonusspørgsmål... Ovenstående query henter og sorterer som jeg spurgte om... Men der er en lille pukkel mere.. moduleFrontendName indeholder ikke en tekst, men navnet på en konstant... _STARTPAGE .. Som så er lig Startside hvsi man har valgt det danske sprogmodul, startpage hvis man har valgt det engelsk osv osv... Findes der en måde hvorpå, jeg kan erstatte _STARTPAGE med konstantens definerede indhold, og bruge dét til sorteringen i mit SQL-statement?

id |  name  |itemType
55     dfsf     Contents
54     evt. logo til Canvas     Contents
45     Forarmet Uran – depleted uranium. Et masseødelægge...     Contents
53     spaden - daglige tekster     Contents
7     _STARTPAGE     ModuleFrontends
42     آمريکايی اش اعلام کرد که طرح کشورش برای     Contents

Som I kan se står konstanten _STARTPAGE som 5. resultat.. men vil have det udskiftet med konstat-navnets værdi.. for hvis værdien af konstaten er abc, hører den jo ikke hjemme i recordsettet efter s... Håber I kan følge med ;-)
Avatar billede da_kbaz Nybegynder
13. marts 2006 - 01:42 #6
Ups.. HTML-entities'ne er Farsi... Please to ignore ;-)
Avatar billede kjulius Novice
13. marts 2006 - 12:36 #7
Okay, det gør jeg så... :-)
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