mysql-with recursive

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

mysql-with recursive

Postby sunny_sun » 01. November 2005 01:55

Hallo,

kann jemand mir sagen, warum ich diese Fehlermeldung verdient habe?

+---------+---------+
| child | parent |
+---------+---------+
| john | sam |
| john | julie |
| sam | george |
| sam | jean |
| julie | hank |
| julie | lucy |
| jean | bill |
| jean | suzy |
| suzy | william |
| suzy | lizzy |
| william | mary |
+---------+---------+

mysql> with recursive Ancestor(person, ancestor) AS ((select * from Parent) UNION ALL (select Ancestor.person, Parent.parent from Ancestor, Parent where Ancestor.ancestor = Parent.child)) select * from Ancestor where child = "john";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'with recursive Ancestor(person, ancestor) AS ((select * from Parent) UNION ALL (' at line 1 :cry:
sunny_sun
 
Posts: 7
Joined: 06. January 2005 18:17

Postby Wiedmann » 01. November 2005 02:17

Mal Abgesehen davon, dass mir "with recursive" bei MySQL noch nie untergekommen ist, scheint hier ja der ganze Anfang des Statements zu fehlen?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby deepsurfer » 01. November 2005 02:21

welche XAMPP version ?

ansonsten weisst dich die Fehlermeldung an die Doku zu lesen von MySQL,
beim konsolen eintrag "with recursive" müsste ein fehler vorliegen beim gebrauch dieses aufrufes
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby sunny_sun » 01. November 2005 02:31

"with recursive" ist Teil von SQL rekursive Anfragen. Bin aber nicht sicher, ob man bei MySQL benutzen darf.

xampp Version 1.4.6
sunny_sun
 
Posts: 7
Joined: 06. January 2005 18:17

Postby nattl » 01. November 2005 07:42

also ich behaupte mal, das geht mit mysql nicht. fehler 1064 ist ein simpler parse-error. was genau willst du denn mit deinem query bezwecken?
User avatar
nattl
 
Posts: 22
Joined: 26. October 2005 07:50
Location: Vienna

Postby Knappe » 01. November 2005 08:54

Wenn Syntax in Deiner Abfrage richtig wären :

Rekursionen in Triggers gehen seit Version 5.0.12 nicht mehr -->hier

Rekursionen gehen in Version 5.0.15 (aktuelle Version) nicht --> hier

Übersicht über die verschiedenen Changelogs --> hier
Knappe
 
Posts: 114
Joined: 18. November 2004 17:40

Postby sunny_sun » 02. November 2005 00:22

Hallo,

ich wollte eine rekursive Anfrage stellen nach der angegebenen Datenbank, z.B. Wer sind die allen Vorfahren von John. Unter Vorfahren versteht man natürlich Eltern, Großeltern, Urgroßeltern...

Wie kann man unter MySQL das realisieren?
sunny_sun
 
Posts: 7
Joined: 06. January 2005 18:17

Postby Knappe » 02. November 2005 09:19

Also,

mit php geht das wie hier beschrieben (unterer Teil der Beschreibung).

Mit mysql (Stored Procedure) ginge das wie auf Seiten 60/61 des "Stored Procedure-Handbuchs beschrieben.
Der Download-Link ist hier.

ABER : Rekursionen innerhalb von MySQL laufen zur Zeit nicht (s.o.) !
Knappe
 
Posts: 114
Joined: 18. November 2004 17:40


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 8 guests