Toon posts:

MySQL subquery op alias werkt niet meer

Pagina: 1
Acties:
  • 368 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste mensen,

Sinds wij onze MySQL server opnieuw hebben geinstalleerd werkt het volgende niet meer:

SQL:
1
2
3
4
5
6
7
8
9
10
SELECT
tbl1.*
FROM table1 tbl1
WHERE tbl1.id NOT IN
(
SELECT
tbl2.tbl_id
FROM table2 tbl2
WHERE tbl2.tbl_id = tbl1.id
)


Wat gebeurt er?

De query wordt zonder foutmelding uitgevoerd maar de referentie naar het id veld in tbl1 (tbl1.id) is leeg in de subquery. Het lijkt er op dat de subquery de waarden van de hoofdquery niet kan lezen.

Heeft iemand enig idee hoe dit kan komen? Is het een configuratiefout?

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Alleen deze query is wat erg summier qua info. Welke versie was het, welke is het nu, etc. etc.

{signature}


Verwijderd

Topicstarter
Versie 5.0.41. We hebben geen upgrade uitgevoerd, we hebben alleen een herinstallatie gedaan.

  • bazkar
  • Registratie: Juni 2001
  • Laatst online: 13-11 16:20
Ik zou het zowiezo raar vinden als dit gewerkt had. (Geen MySQL gewend, maar gewoon 'standaard' SQL-92).

Wat zou de query in godsnaam moeten doen?
De id's uit table1 vinden die niet in table2 voorkomen?
Dan snap ik je where clausule in je subquery niet.

Ik zou zoiets doen als:

SQL:
1
2
3
4
SELECT tbl1.* 
FROM table1 tbl1 
LEFT JOIN table2 tbl2 ON tbl1.id = tbl2.tbl_id 
WHERE tbl2.tbl_id IS NULL

[ Voor 25% gewijzigd door bazkar op 25-05-2007 13:48 ]


Verwijderd

Topicstarter
bazkar schreef op vrijdag 25 mei 2007 @ 13:43:
Ik zou het zowiezo raar vinden als dit gewerkt had. (Geen MySQL gewend, maar gewoon 'standaard' SQL-92).

Wat zou de query in godsnaam moeten doen?
De id's uit table1 vinden die niet in table2 voorkomen?
Dan snap ik je where clausule in je subquery niet.

Ik zou zoiets doen als:

SQL:
1
2
3
4
SELECT tbl1.* 
FROM table1 tbl1 
LEFT JOIN table2 tbl2 ON tbl1.id = tbl2.tbl_id 
WHERE tbl2.tbl_id IS NULL
Tja dat snap ik ook, maar het gaat niet om deze query, maar om het idee ervan. Het gaat erom dat ik de subquery niet kan later verwijzen naar een waarde uit de query.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

bazkar schreef op vrijdag 25 mei 2007 @ 13:43:
Ik zou het zowiezo raar vinden als dit gewerkt had. (Geen MySQL gewend, maar gewoon 'standaard' SQL-92).
Dit heet een gesynchroniseerde subquery en is wel degelijk standaard. Het is geen MySQL constructie ofzo. Dat het juist niet meer lijkt te werken lijkt juist iets van MySQL te zijn :P

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1