Toon posts:

[MySQL] Het ontbreken van subqueries opvangen..

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik had al eerder vandaag een topic geplaatst, welke gesloten werd, omdat ik zelf niet alleen om een oplossing vroeg. Maar goed, ik heb dus een probleem dat ik volgens mij alleen met subqueries kan oplossen, maar dit wordt niet ondersteund door MySQL.

Nu heb ik in een boek gelezen dat dit op te lossen is door achtereenvolgens meerdere queries uit te voeren. Hoe kun je dit doen?

Dus stel ik krijg een resultaat van een query, hoe kan ik dan op dit resultaat weer queries uitvoeren?

$query = "select * from tabel";
$result = mysql_query($query) or die(mysql_error());

Hoe kan ik nu queries uitvoeren op het resultaat? :?

Kan dat wel of niet? :+

Verwijderd

al geprobeert of het werkt?
de snelste manier om er achter te komen.....

Verwijderd

Topicstarter
Op maandag 25 maart 2002 17:45 schreef Foxboy het volgende:
al geprobeert of het werkt?
de snelste manier om er achter te komen.....
Eigenlijk moet het helemaal in MySQL. Kan ik de deelverzameling een naam geven misschien? Wie weet het? :)

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op maandag 25 maart 2002 17:43 schreef cr33p het volgende:
Dus stel ik krijg een resultaat van een query, hoe kan ik dan op dit resultaat weer queries uitvoeren?
Gebruik gewoon het resultaat van de eerste query als parameter in de tweede query.

Who is John Galt?


Verwijderd

Topicstarter
Op maandag 25 maart 2002 17:46 schreef justmental het volgende:

[..]

Gebruik gewoon het resultaat van de eerste query als parameter in de tweede query.
Laat ik het concreter stellen:

mysql> select * from test;

Dit levert iets op. Bijvoorbeeld "marc", 21 en "werner", 53. Nu wil ik daarvan de gemiddelde leeftijd hebben (dus van het resultaat, niet direct de tabel, want dat kan ik ook), wat moet ik invoeren?

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Uhm.. mischien zoiets?
code:
1
SELECT *, AVG(leeftijd) FROM test;

  • Grum
  • Registratie: Juni 2001
  • Niet online
mist daar niet group by :?

Verwijderd

Topicstarter
Op maandag 25 maart 2002 18:22 schreef stylee het volgende:
Uhm.. mischien zoiets?
code:
1
SELECT *, AVG(leeftijd) FROM test;
Nee, ik wil een query uitvoeren op het resultaat *van* mijn vorige query. Dus stel dat uit mijn query een aantal records resulteren, hoe voer ik een query uit op deze records?

Oftewel, hoe kan ik een query uitvoeren op een resulterende recordset?

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 09-09 15:42
do
{
mysqlquery met $row["kolomnaam"]
}
while ($row=mysqlfetcharray($result))

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Je kunt in mysql gebruik maken van temporary tables, waar je mee binnen dezelfde connectie weer mee kan werken. Je zou dit als een soort van subquerie kunnen zien. Zoek er maar eens op in de MySql handleiding.

Verwijderd

Topicstarter
Op maandag 25 maart 2002 20:17 schreef vgouw het volgende:
Je kunt in mysql gebruik maken van temporary tables, waar je mee binnen dezelfde connectie weer mee kan werken. Je zou dit als een soort van subquerie kunnen zien. Zoek er maar eens op in de MySql handleiding.
Eindelijk iemand die begrijpt wat ik bedoel :)

Maar na zoeken op www.mysql.com op "temporary tables" ben ik niet veel wijzer geworden. Wel heb ik de functie mysql_store_result() gevonden, maar er staat verder geen uitleg bij? :?

Hmm, nog ff met Google ertegen aan :)

Verwijderd

Topicstarter
CREATE TEMPORARY TABLE TempTable ( ID int, Name char(100) ) TYPE=HEAP;
INSERT INTO TempTable VALUES( 1, "Foo bar" );
SELECT * FROM TempTable;
DROP TABLE TempTable;

Ghehe 8-)

Thank you, met deze kennis moet het wel lukken! :Y)

[edit]
Maar wel zonder TYPE=HEAP lees ik net >:)
Pagina: 1