Toon posts:

[SQL] NOT IN functie omzetten naar een MySQL format

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een ASP/Access site om te zetten naar een ASP/MySQL. Eigenlijk wil alles werken maar ben ik tegen hetvolgende aangelopen. Er zitten een paar NOT IN acties in die niet ondersteund worden mijn huidige mySQL versie 3.x. Ik heb lopen zoeken naar een omweg en kwam op hetvolgende neer. Dit wil echter totaal niet werken. Is er toevallig ook een makkelijke manier om dit op te lossen ?

Originele code
code:
1
2
3
SELECT *  FROM news where language = 'ned' 
AND news_id not in (select news_id FROM nieuwsbrief_kop_news
WHERE nieuwsbrief_id=value )


Probeersel om het werkend te krijgen in MySQL, maar werkt niet
code:
1
2
3
4
5
SELECT * FROM news, nieuwsbrief_kop_news

LEFT JOIN nieuwsbrief_kop_news ON news.news_id = nieuwsbrief_kop_news.news_id

WHERE nieuwsbrief_id = value AND news.news_id Is Null

[ Voor 10% gewijzigd door Verwijderd op 27-01-2005 00:45 . Reden: Originele code stond er helemaal verkeerd in ]


Verwijderd

Toevallig liep ik hier 2 dagen geleden ook tegen,

hier staat wat uitleg over herschrijven van subquery's:

http://64.233.183.104/sea...mysql+query+rewrite&hl=nl

Ik hoop dat dit je op weg helpt,

trouwens ik merkte wel dat deze query's verrekte traag waren, soms wel 2.3 seconden. Ik hoop dat je hem niet intensief gaat gebruiken.

[ Voor 21% gewijzigd door Verwijderd op 26-01-2005 23:22 ]


  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Wat wil je nu?

1) Alle nieuwsbrief_kop_news die niet in news zit?
code:
1
2
3
4
5
SELECT nkn.*
FROM nieuwsbrief_kop_news nkn
LEFT OUTER JOIN news n ON nkn.news_id=n.news_id
WHERE nkn.nieuwsbrief_id=value
AND n.news_id IS NULL


2) Of news die niet in nieuwsbrief_kop_news zit?
code:
1
2
3
4
5
SELECT n.*
FROM news n
LEFT OUTER nieuwsbrief_kop_news nkn ON n.news_id=nkn.news_id
WHERE n.nieuwsbrief_id=value
AND nkn.news_id IS NULL

[ Voor 61% gewijzigd door Riegstar op 26-01-2005 23:25 ]


Verwijderd

Topicstarter
Bovenste ontwerpen werken ook niet, althans niet voor wat ik nodig heb, ze geven geen errors maar verkeerde output. Dat is mijn eigen stomme schuld, want ik heb de originele code verkeerd gepost.

code:
1
2
3
SELECT *  FROM news where language = 'ned' 
AND news_id not in (select news_id FROM nieuwsbrief_kop_news
WHERE nieuwsbrief_id=value )

[ Voor 4% gewijzigd door Verwijderd op 27-01-2005 00:44 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Intentionally left blank