Select in select query

Status
Niet open voor verdere reacties.

Yariev

Gebruiker
Lid geworden
4 okt 2004
Berichten
103
Ik heb problemen met onderstaande query die ik maar niet werkend krijg.

SELECT *
FROM uitnodiging_naw as n
where not exists
(select *
from uitnodiging_reg as r
where r.kamerid = n.id)

Het idee is dat ik een lijst haal uit tabel 'uitnodiging_naw' waarbij het id niet al voorkomt als kamerid in de tabel 'uitnodiging_reg'

Ik heb ook al left joins geprobeerd, maar die gaven dezelfde problemen :(

Weet iemand een oplossing? bedankt
 
Hij geeft telkens dezelfde syntax error altijd in de tweede select, welke query ik ook probeer, maar ik heb alles al 100 x nagelopen :shocked:

Dit is de foutmelding:

Fout

SQL-query: Documentatie

SELECT *
FROM uitnodiging_naw AS n
WHERE NOT
EXISTS (

SELECT *
FROM uitnodiging_reg AS r
WHERE r.kamergenoot = n.miccode
)
LIMIT 0 , 30

MySQL retourneerde: Documentatie
#1064 - You have an error in your SQL syntax near 'exists
(select * from uitnodiging_reg as r where r.kamergenoot = n.miccode ) L' at line 3
 
Volgens mij heb je 3 foutjes in je query.

1) I.p.v. EXISTS moet je volgens mij IN gebruiken
2) Je sub-query mag maar 1 veld teruggeven
3) In de WHERE clausule van je hoofd query moet je specificeren met welk veld in je hoofdquery de uitkomst van je sub query verleken moet worden.

Oftewel, zoiets:
Code:
SELECT *
FROM uitnodiging_naw AS n
WHERE n.miccode NOT IN
(
SELECT r.kamergenoot
FROM uitnodiging_reg AS r
)

(ik heb de query niet kunnen controleren, dus er kunnen nog fouten inzitten)
 
Bedankt Bas,

'Where not in' is ook een manier, maar las dat daar de voorkeur van menig een niet naar uit ivm NULL waarden in tabellen. Niettemin ik had die ook uitgeprobeerd en wederom tevergeefs.

Dit is een tekstboek voorbeeld van exists:
SELECT *
FROM suppliers
WHERE not exists (select * from orders Where suppliers.supplier_id = orders.supplier_id);

Ik heb overigens jouw query ook geprobeerd hoor en wederom dezelfde melding:

MySQL retourneerde: Documentatie
#1064 - You have an error in your SQL syntax near 'SELECT r.kamergenoot
FROM uitnodiging_reg AS r
) LIMIT 0, 30' at line 5
 
Ik zag ook pas na mijn antwoord een voorbeeld van EXISTS (ik heb hier een grote SQL bijbel naast me liggen). Zo op het oog lijkt je query dan inderdaad te kloppen.

Zou je eens een backup van je database kunnen maken en bij willen voegen? Dan heb ik een geldige database waarmee ik voor je wat dingen uit kan proberen.
 
hoe doe ik dat dan, of wil je gewoon de structuur ofzo?

Ik zie nu dat ik een bestand kan uploaden, hopelijk 2 tegelijk. Volstaat csv bestand?
 
Laatst bewerkt:
Ik heb je query even aangepast zodat 'ie bruikbaar is voor een database die ik op mijn PC heb staan (alleen tabelnamen en veldnamen aangepast) en het vreemde is dan dat het bij mij gewoon werkt. Het lijkt erop dat er een andere oorzaak is dan de query waardoor het niet werkt. Misschien de optie van aaajeetee?

Edit: Ja dus ;)
 
Wat bedoel je met Ja dus?

En volgens mij stelt aaajeetee niks voor, tenzij ik erover heen lees? :)
 
aaajeetee zegt dat subqueries pas mogelijk zijn vanaf 4.1 en je gebruikt 2.6. Dus de opmerking van aaajeetee lijkt de reden te zijn.
 
aha zo....., dus ik zit hier al voor niks 3 uur te prutsen :)

De database is niet van mijzelf, maar van een serverprovider dus ik kan daar zelf niet veel aan veranderen.

Enig idee hoe ze dit dan in het stenen tijdperk oploste? :p


Het is overigens phpMyAdmin 2.6.1-pl2 en MySQL 3.23.58, maar dat is nog geen versie 4
 
Laatst bewerkt:
Oplossing is bestanden op nieuwe server plaatsen en heb ik maar aangevraagd bij serverprovider :cool:
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan