Toon posts:

[MySQL] Statement geeft foutmelding

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb het volgende statement gemaakt waarmee ik mijn MySQL database wil benaderen :

SELECT songid, title
FROM song
WHERE songid IN
(SELECT songid FROM album_songs WHERE albumid= 5)

Het gaat hier om een database met songteksten zoals je waarschijnlijk wel kunt zien. :)

Het probleem is dat ik de database eerst in access had gemaakt, maar omdat die op mijn server komt te staan is het een mysql db geworden. Het converteren van access naar mysql is prima gegaan, geen enkel probleem. Nu moet ik alleen nog mijn php code omschrijven.

De bovenstaande query werkt prima voor access, maar in mysql werkt die niet. Het gaat fout bij het IN statement. Ik heb geen idee waarom. Zit er verschil tussen het uitvoeren van een sql statement op een access database en een mysql database?

  • phYzar
  • Registratie: November 2001
  • Laatst online: 19:30
mysql ondersteund geen subqueries geloof ik

edit:

code:
1
2
3
4
select songid,title
from song,album_songs
where album_songs.songid=song.songid
and albumid=5


doet die query misschien wat je wilt (als alternatief)?

[ Voor 69% gewijzigd door phYzar op 30-05-2004 22:45 ]


Verwijderd

Topicstarter
Met een kleine aanpassing doet deze query inderdaad wat ik wil. Bedankt!

Toch raar dat mysql geen subqueries aankan.

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 31 mei 2004 @ 12:33:
Toch raar dat mysql geen subqueries aankan.
Dat staat gewoon in de documentatie, inclusief vanaf welke versie het wel ondersteunt wordt. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
En uiteraard ben ik te lui om alle documentatie door te lezen! ;)
Nee ik heb het gewoon nooit eerder gehoord, ging ervan uit dat mysql van het begin af aan verder was dan access met sql queries, dus geen moment aan gedacht dat die geen subqueries zou ondersteunen.

Maar het klopt inderdaad, mijn host heeft mysql 3.nogwat draaien.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 02 juni 2004 @ 14:00:
En uiteraard ben ik te lui om alle documentatie door te lezen! ;)
Nee ik heb het gewoon nooit eerder gehoord, ging ervan uit dat mysql van het begin af aan verder was dan access met sql queries, dus geen moment aan gedacht dat die geen subqueries zou ondersteunen.

Maar het klopt inderdaad, mijn host heeft mysql 3.nogwat draaien.
MySQL loopt met wel meer dingen achter op Access, en het wijkt nogal eens af van de standaard. LIMIT anyone? :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
NMe84 schreef op 02 juni 2004 @ 14:05:
[...]

MySQL loopt met wel meer dingen achter op Access, en het wijkt nogal eens af van de standaard. LIMIT anyone? :+
Wat beweegt jou ertoe om Abcess als voorbeeld te gebruiken. :'(
Dat loopt namelijk weer mijlenver achter op MSSQL.

Never underestimate the power of


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 10:24

ripexx

bibs

NMe84 schreef op 02 juni 2004 @ 14:05:
[...]
MySQL loopt met wel meer dingen achter op Access, en het wijkt nogal eens af van de standaard. LIMIT anyone? :+
Is maar wat je afwijken noemt. Access mist ook een hoop functie sdie standaard gewoon in MySQL zitten. Het zijn gewoon twee verschillende pakket gericht op verschillende doelgroepen. :) Je deze pakket ook moeilijk vergelijken. Het geheel is afhankelijk van de verschillende eisen die een bepaalde applicatie nodig heeft. Daarnaast kan je veel subqueries gewoon omschrijven naar een join. ;)

buit is binnen sukkel


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

cameodski schreef op 02 juni 2004 @ 14:18:
Wat beweegt jou ertoe om Abcess als voorbeeld te gebruiken. :'(
Dat loopt namelijk weer mijlenver achter op MSSQL.
Ik gebruik Access als voorbeeld omdat TS dat ook doet, hij zei dat Access achterloopt op MySQL en dat waagde ik te betwijfelen, dus in die context moet je het zien. Dat Access geen fijn systeem is hoef je mij ook niet te vertellen. ;)
ripexx schreef op 02 juni 2004 @ 14:19:
Is maar wat je afwijken noemt. Access mist ook een hoop functie sdie standaard gewoon in MySQL zitten. Het zijn gewoon twee verschillende pakket gericht op verschillende doelgroepen. :) Je deze pakket ook moeilijk vergelijken. Het geheel is afhankelijk van de verschillende eisen die een bepaalde applicatie nodig heeft. Daarnaast kan je veel subqueries gewoon omschrijven naar een join. ;)
Die dingen waarin MySQL afwijkt zijn vaak niet volgens de standaard, neem zoals ik net al zei bijvoorbeeld het LIMIT statement. Dat het een handige manier is om de resultset klein te houden is snap ik wel, maar je kan niet zomaar je MySQL queries poorten naar MSSQL zolang MySQL niet aan standaarden voldoet...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 10:24

ripexx

bibs

NMe84 schreef op 02 juni 2004 @ 14:23:

Die dingen waarin MySQL afwijkt zijn vaak niet volgens de standaard, neem zoals ik net al zei bijvoorbeeld het LIMIT statement. Dat het een handige manier is om de resultset klein te houden is snap ik wel, maar je kan niet zomaar je MySQL queries poorten naar MSSQL zolang MySQL niet aan standaarden voldoet...
Net zoals je Access niet blind kan over zetten naar MSSQL kan je dat ook niet naar een andere (R)DBMS. De verschillen tussen MySQL, MSSQL, DB2, Oracle en PostgreSQL zijn zo groot dat een conversie van een applicatie toch weer anders is. ik weet ook dat MySQL zijn eigenaardig heden heeft maar die LIMIT functie is nou typisch een functie die eenvoudig is toe te passen. MySQL heeft natuurlijk ook gewoon 'domme' dingen er in zitten die voor heel wat problemen met conversies opleveren maar voor het dagelijks gebruik bij bijvoorbeeld een website, cms of forum voldoet het prima. MySQL is geen enterprice DMBS en zal dat voorlopig ook niet worden. Hoewel men bij MySQL daar wellicht anders over denkt. Als je op grote en intensievere schaal gebruik gaat maken van access merk je ook dat er limieten aan de bruikbaarheid zitten. Voordeel is dat je wel eenvoudig kan overschakelen op een MSSQL server met een Acces frontend. ACM heeft ooit ook eens mooi lijstje (http://vulcanus.its.tudelft.nl/acm/got/antimysql.php) gemaakt met echte bugs maar ook stomme implementatie fouten van MySQL. Dit is mede naar voren gekomen door het vele werk dat hij heeft verricht aan de verschillende servers en scripts hier op T.net. :)

Net zoals met veel verschillende programmertalen hebben verschillende (R)DBMS'en ook hun eigen dialecten. De SQL standaard is redelijk leidend maar absoluut niet zalig makend. Je moet gewoon de tools gebruiken die je nodig hebt en als jij een enterprice applicatie gaat ontwikkelen zal je niet snel voor MySQL of Access kiezen. Net zoals je voor een simpele website met 100 bezoekers per dag geen Oracle gaat gebruiken. :)

Om terug te komen op de TS: Als je gaat converteren van Access naar MySQL is het natuurlijk wel slim om even de documentatie door te lezen. Zodat je gewoon een hoop problemen weet te voorkomen. ;)

buit is binnen sukkel

Pagina: 1