/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Database kald til 2 tabeller...
Fra : Magnus


Dato : 25-01-05 14:49

Med disse to koder henter jeg en liste over tabellerne Kortnyt og Nyheder
uafhængigt af hinanen.

Kan jeg ikke slå dem sammen således at jeg kan få listet dem begge to i en
omgang således at posterne sorteret efter datoen i feltet dato i
Nyheder-tabellen og kndato i Kortnyt tabellen på samme måde som hvar det en
enkelt tabel?

/Magnus

SQL = "SELECT knid, hnhead, kndato FROM Kortnyt ORDER BY kndato DESC"
Set RS = conn.execute(SQL)
DO WHILE NOT RS.EOF
Response.write " & RS("knid") & " - " & RS("knhead") & "<br>
RS.MoveNext
LOOP

SQL = "SELECT id, overskrift, dato FROM Nyheder ORDER BY dato DESC"
Set RS = conn.execute(SQL)
DO WHILE NOT RS.EOF
Response.write " & RS("id") & " - " & RS("overskrift") & "<br>
RS.MoveNext
LOOP



 
 
Casper Bang (25-01-2005)
Kommentar
Fra : Casper Bang


Dato : 25-01-05 15:18

> Kan jeg ikke slå dem sammen således at jeg kan få listet dem begge to i en
> omgang således at posterne sorteret efter datoen i feltet dato i
> Nyheder-tabellen og kndato i Kortnyt tabellen på samme måde som hvar det
> en enkelt tabel?

Det burde godt kunne lade sig gøre.
Den rigtige gruppe er dk.edb.database, da det er en anden SQL-sætning du
leder efter.

FUT: dk.edb.database



Jens Gyldenkærne Cla~ (26-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 26-01-05 00:03

Magnus skrev:

> Kan jeg ikke slå dem sammen således at jeg kan få listet dem
> begge to i en omgang således at posterne sorteret efter datoen
> i feltet dato i Nyheder-tabellen og kndato i Kortnyt tabellen
> på samme måde som hvar det en enkelt tabel?

Hvilken database benytter du?

Hvis den understøtter UNION-forespørgsler, kan du skrive:

SELECT id, overskrift, dato FROM Nyheder
UNION
SELECT knid, hnhead, kndato FROM Kortnyt
ORDER BY dato

Felttyperne skal stemme overens i alle select-sætningerne i en
UNION-forespørgsel - id og knid skal altså have samme type, lige
som overskrift/hnhead og dato/kndato

Dit postsæt får navnene fra den første select - altså id,
overskrift og dato, sådan som sætningen er skrevet ovenfor - uanset
hvilken tabel de stammer fra.

Order by-linjen kan tilsvarende også kun bruges på feltnavne fra
den første select - men det er hele postsættet der sorteres.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Magnus (26-01-2005)
Kommentar
Fra : Magnus


Dato : 26-01-05 20:23

>
> Hvilken database benytter du?

MySQL
>
> Hvis den understøtter UNION-forespørgsler, kan du skrive:
>
> SELECT id, overskrift, dato FROM Nyheder
> UNION
> SELECT knid, hnhead, kndato FROM Kortnyt
> ORDER BY dato

Jeg har lavet det sådan her men det virker ikke men er i tvivlt om et par
ting....

SQL="CREATE VIEW SamletNyt AS "
SQL=SQL+"SELECT id AS id, overskrift AS overskrift, dato AS dato, kategori
AS kategori FROM Nyheder"
SQL=SQL+" UNION ALL "
SQL=SQL+"SELECT knid AS id, knhead AS overskrift, kndato AS dato, knkategori
AS kategori FROM Kortnyt"

Hvilken af disse to linier eller andre skal jeg benytte til at afvikle den
første db forespørgelse...
Set RS = conn.execute(SQL)
'conn.execute(SQL)

Også burde vel blot være at gøre følgende...
SQL2="SELECT id, overskrift, dato, kategori FROM SamletNyt ORDER BY dato
DESC"
Set RS = conn.execute(SQL2)

DO WHILE NOT RS.EOF
Response.write "" & RS("id") & " - " & RS("dato") & " - " &
RS("overskrift") & "<br>"
RS.MoveNext
LOOP


/Magnus - som vil være glad for at vide hvad tegn der er sat lidt skævt så
jeg kan se lyset.



Jens Gyldenkærne Cla~ (27-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-01-05 12:17

Magnus skrev:

> Jeg har lavet det sådan her men det virker ikke

Hvordan virker det ikke? Allervigtigste regel når man skal have hjælp
til en fejl: fortæl så præcist som muligt hvad fejlen er.

[snip, CREATE VIEW-sætning]

> Hvilken af disse to linier eller andre skal jeg benytte til at afvikle den
> første db forespørgelse...

Jeg er ikke specielt kendt med mysql - og ved ikke om databasen i det
hele taget understøtter views. Men hvis den gør det, så er en
CREATE-forespørgsel en forespørgsel der ikke returnerer et postsæt - og
dermed skal du bare skrive Conn.Execute (SQL) og ikke Set RS = ...

Du skal også huske at din CREATE-sætning bare skal køres én gang - så er
viewet gemt i databasen.

> Også burde vel blot være at gøre følgende...
> SQL2="SELECT id, overskrift, dato, kategori FROM SamletNyt ORDER BY dato
> DESC"
> Set RS = conn.execute(SQL2)

Ja. Men jeg vil nok undlade at have de to sætninger på samme side. Som
nævnt ovenfor skal du bare oprette viewet én gang for alle - det kan
gøres via en asp-side eller evt. via et administrationsinterface til
databasen (igen, jeg kender ikke meget til mysql, så jeg ved ikke hvad
du har til rådighed).

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste