webForumDet fria alternativet

Jobbiga sql-satser

ASPur ASP

4 svar · 158 visningar · startad av drain

drainMedlem sedan apr. 200165 inlägg
#1

Ja nu är det kört igen. Hur skriver man flera satser i en då man använder recordset?
EX (funkar ej):
"SELECT * FROM person WHERE namn=
SELECT namn FROM spelare WHERE alder>10"

Någon som har koll på det här med nästlade sql satser som kan hjälpa mig att uppnå det jag vill här??

------------------
simon says

tohaMedlem sedan dec. 1999707 inlägg
#2

Om du vill hämta första personen vars ålder är större än 10 så skall du skriva:

SELECT * FROM person WHERE namn =
(SELECT namn FROM spelare WHERE alder > 10)

Om du vill hämta ALLA som är över 10 så skriver du:

SELECT * FROM person WHERE namn IN
(SELECT namn FROM spelare WHERE alder > 10)

Sedan kan man ju fråga sig hur bra det är att ha namn som kritierie i ovanstående fall. Jag skulle nog använda mig av tabellens nyckelfält.

------------------
/ Torbjörn Hansson, webbutvecklare
Endero Sverige

drainMedlem sedan apr. 200165 inlägg
#3

Super duper!! Jag är med.
Det här med namn var liksom en exempel kod utan någon sådan där jätte poäng mer än som förklarning till vad jag menade :)

tack!!

------------------
simon says

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Om du vill hämta första personen vars ålder är större än 10 så skall du skriva:
SELECT * FROM person WHERE namn =
(SELECT namn FROM spelare WHERE alder > 10)

Om du vill hämta ALLA som är över 10 så skriver du:

SELECT * FROM person WHERE namn IN
(SELECT namn FROM spelare WHERE alder > 10)

Det här stämmer inte, den enda skillnaden mellan att använda in eller = är att om subqueryn resulterar mer än en post så får man fel om man använder =. (Generellt sett så är det fel att prata om sista eller första posten i en tabell.)

Om någon DBMS inte beter sig så, så följer den inte ANSI SQL specifikationen.

------------------
essentitia preter non sans multiplicandum

tohaMedlem sedan dec. 1999707 inlägg
#5

Aha, ok. Tack för rättelsen Lars! Rätt skall vara rätt.

------------------
/ Torbjörn Hansson, webbutvecklare
Endero Sverige

132 ms totalt · 3 externa anrop · v20260731065814-full.a2ca460b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)