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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[mysql] Problemer med IN-clause
Fra : Jesper Stocholm


Dato : 04-02-03 13:43

Jeg har en forespørgsel i Access, der ser således ud:

SELECT
   t1.field1
FROM
   t1.table1 t1
WHERE t1.field2 IN (SELECT t2.field3 FROM table2 t2 WHERE t2.field4 = ...)

Men jeg har problemer med at oversætte den til mySQL. Self. kunne jeg lave
det i to forespørgsler, hvor jeg først hentede

SELECT t2.field3 FROM table2 t2 WHERE t2.field4 = ...

og lavede den til en liste og derefter udførte den "yderste" forespørgsel,
men kan det ikke lade sig gøre at gøre dette i én forespørgsel ?



--
Jesper Stocholm - http://stocholm.dk
if you are competing with the darknet, you must compete on the darknet's
own terms: that is convenience and low cost rather than additional
security. ( http://crypto.stanford.edu/DRM2002/darknet5.doc )

 
 
Jens Gyldenkærne Cla~ (04-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-02-03 13:49

Jesper Stocholm skrev:

> Men jeg har problemer med at oversætte den til mySQL.

Hvilken version?

De mest udbredte versioner af mySQL (<4) forstår ikke subqueries.
Jeg tror ikke du kan gøre meget ved det.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Jesper Stocholm (04-02-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 04-02-03 14:59

Jens Gyldenkærne Clausen wrote :

> Jesper Stocholm skrev:
>
>> Men jeg har problemer med at oversætte den til mySQL.
>
> Hvilken version?

sorry ... det er version 3.23.38-nt
>
> De mest udbredte versioner af mySQL (<4) forstår ikke subqueries.
> Jeg tror ikke du kan gøre meget ved det.



--
Jesper Stocholm - http://stocholm.dk
www.asp-faq.dk : FAQ for dk.edb.internet.webdesign.serverside.asp
www.usenet.dk/netikette/citatteknik.html : Skriv under det du svarer på
Svar til gruppen og ikke til mig privat !

Peter Brodersen (04-02-2003)
Kommentar
Fra : Peter Brodersen


Dato : 04-02-03 13:57

On Tue, 4 Feb 2003 12:42:37 +0000 (UTC), Jesper Stocholm
<skal.du.absolut.vise.min.emailadresse.ved.svar@stocholm.invalid>
wrote:

>Men jeg har problemer med at oversætte den til mySQL.

Korrekt, en typisk mysql (MyISAM) kan ikke lave subselects.
Umiddelbart virker det dog som om, du lige så godt kan lave en INNER
JOIN, fx skrevet som:

SELECT
   t1.field1
FROM
   table1 t1,
   table2 t2
WHERE t1.field2 = t2.field3
AND t2.field4 = ...

--
- Peter Brodersen

Jesper Stocholm (04-02-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 04-02-03 15:02

Peter Brodersen wrote :

> On Tue, 4 Feb 2003 12:42:37 +0000 (UTC), Jesper Stocholm
> <skal.du.absolut.vise.min.emailadresse.ved.svar@stocholm.invalid>
> wrote:
>
>>Men jeg har problemer med at oversætte den til mySQL.
>
> Korrekt, en typisk mysql (MyISAM) kan ikke lave subselects.
> Umiddelbart virker det dog som om, du lige så godt kan lave en INNER
> JOIN, fx skrevet som:
>
> SELECT
> t1.field1
> FROM
> table1 t1,
> table2 t2
> WHERE t1.field2 = t2.field3
> AND t2.field4 = ...

mjaeh ... det kan faktisk ikke lade sig gøre - men det skyldes nok, at det eksempel
jeg gav var lige lovligt forsimplet. Til gengæld har dit forslag givet mig inspiration
til at fjerne fokus fra min ene tabel (her tabel1) og til en anden tabel/view, hvor
nogle af de samme oplysninger forekommer. Her anvendes nemlig en INNER JOIN for at få
data ud.



--
Jesper Stocholm - http://stocholm.dk
www.asp-faq.dk : FAQ for dk.edb.internet.webdesign.serverside.asp
www.usenet.dk/netikette/citatteknik.html : Skriv under det du svarer på
Svar til gruppen og ikke til mig privat !

Kristian Damm Jensen (04-02-2003)
Kommentar
Fra : Kristian Damm Jensen


Dato : 04-02-03 21:55

Peter Brodersen wrote:
>
> On Tue, 4 Feb 2003 12:42:37 +0000 (UTC), Jesper Stocholm
> <skal.du.absolut.vise.min.emailadresse.ved.svar@stocholm.invalid>
> wrote:
>
> >Men jeg har problemer med at oversætte den til mySQL.
>
> Korrekt, en typisk mysql (MyISAM) kan ikke lave subselects.
> Umiddelbart virker det dog som om, du lige så godt kan lave en INNER
> JOIN, fx skrevet som:
>
> SELECT
> t1.field1
> FROM
> table1 t1,
> table2 t2
> WHERE t1.field2 = t2.field3
> AND t2.field4 = ...

Vær dog opmærksom på at det kan være du får brug for en distinct, når du
laver denne omskrivning.

--
Kristian Damm Jensen | Feed the hungry at www.thehungersite.com
kristian-damm.jensen@cgey.com | Two wrongs doesn't make a right,
ICQ# 146728724 | but three lefts do.


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste