mysql passage de la version 4.x à la 5.0
le 10/07/2006 à 19:08
Salut
En vue d'une éventuelle mise à jour de mysql chez mon hébergeur, je fais des test en local. J'ai une requête (voir ci-dessous) qui passe parfaitement avec mysql 4.x mais pas avec mysql 5.0
SELECT CONCAT( debut, ' - ', fin, ', ', SUBSTRING( p1.date, 9, 2 ) , '/', SUBSTRING( p1.date, 6, 2 ) , '/', SUBSTRING( p1.date, 1, 4 ) , ' ', SUBSTRING( p1.date, 12, 2 ) , ':', SUBSTRING( p1.date, 15, 2 ) , ', ', clubHome.club, ' - ', clubAway.club ) , p1.id_programme
FROM programme AS p1, programme AS p2
LEFT OUTER JOIN clubs AS clubHome ON clubHome.id_clubs = p1.id_clubs
LEFT OUTER JOIN clubs AS clubAway ON clubAway.id_clubs = p2.id_clubs
LEFT OUTER JOIN saisons AS s ON s.id_saisons = p1.id_saisons
WHERE p1.id_programme = p2.id_programme
AND p1.home =1
AND p2.home =0
AND p1.buts = -1
AND p2.buts = -1
ORDER BY p1.date
LIMIT 0 , 30
l'erreur est la suivante :
MySQL a répondu:Documentation
#1054 - Unknown column 'p1.id_clubs' in 'on clause'
le 11/07/2006 à 08:26
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Tu peux nous donner le create de la table ?
le 11/07/2006 à 10:49
CREATE TABLE `programme` (
`id_programme` smallint(5) unsigned NOT NULL default '0',
`id_saisons` smallint(2) unsigned NOT NULL default '0',
`id_equipes` tinyint(1) unsigned NOT NULL default '0',
`id_types_groupe` tinyint(1) unsigned NOT NULL default '0',
`id_groupes` smallint(4) unsigned NOT NULL default '0',
`id_clubs` int(10) unsigned NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`lieu` varchar(30) NOT NULL default '',
`home` tinyint(1) unsigned NOT NULL default '0',
`buts` tinyint(2) NOT NULL default '-1',
PRIMARY KEY (`id_programme`,`id_saisons`,`id_equipes`,`id_types_groupe`,`id_groupes`,`id_clubs`)
)
le 11/07/2006 à 10:50
la structure de mes tables ainsi que les données proviennent d'un dump d'une base sous mysql 4.x que j'ai ensuite réintroduit dans une base sous mysql 5.0.
le 14/07/2006 à 10:45
personne ?
le 14/07/2006 à 19:14
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Le message d'erreur est simple : #1054 - Unknown column 'p1.id_clubs' in 'on clause'
le champ id_clubs n'existe pas.
le 15/07/2006 à 01:02
si, justement (regarde mon CREATE TABLE). Et puis comme je l'ai indiqué, aucun problème sous mysql 4.
le 15/07/2006 à 10:56
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Es tu sur que la table que tu attaques correspond bien au create que tu nous montre ?
Sinon, donne nous aussi les structures de tes tables clubs et saisons.
le 15/07/2006 à 13:26
oui, le create que j'ai indiqué provient d'un dump de ma base obtenu depuis phpMyAdmin
le 15/07/2006 à 13:40
Je progresse apparement c'est la ligne
FROM programme AS p1, programme AS p2
que mysql n'aime pas. en particulier la virgule.
J'ai essayé un requête plus simple :
SELECT * FROM programme AS p1, programme AS p2 LEFT OUTER JOIN clubs AS clubHome ON clubHome.id_clubs = p1.id_clubs
mais ça ne marche pas non plus
en revanche avec
SELECT * FROM programme AS p2, programme AS p1 LEFT OUTER JOIN clubs AS clubHome ON clubHome.id_clubs = p1.id_clubs
ça marche.
Apparement seul le dernier alias (p1 dans ce dernier exemple) est pris en compte. Pourquoi, je n'en sais rien
le 05/08/2006 à 16:20
up
le 07/08/2006 à 08:58
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Juts) L'habitude du up est une habitude détestable.
Va avec une console MySQL sur ta base, et dis-nous ce que dit describes programme.
le 08/08/2006 à 23:32
voilà
+-----------------+----------------------+------+-----+---------------------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+----------------------+------+-----+---------------------+-------+ | id_programme | smallint(5) unsigned | NO | PRI | 0 | | | id_saisons | smallint(2) unsigned | NO | PRI | 0 | | | id_equipes | tinyint(1) unsigned | NO | PRI | 0 | | | id_types_groupe | tinyint(1) unsigned | NO | PRI | 0 | | | id_groupes | smallint(4) unsigned | NO | PRI | 0 | | | id_clubs | int(10) unsigned | NO | PRI | 0 | | | date | datetime | NO | | 0000-00-00 00:00:00 | | | lieu | varchar(30) | NO | | | | | home | tinyint(1) unsigned | NO | | 0 | | | buts | tinyint(2) | NO | | -1 | | +-----------------+----------------------+------+-----+------------ ---------+-------+
le 09/08/2006 à 08:54
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Je me demande si tu ne dois pas préciser la clé primaire dans son intégralité.
le 09/08/2006 à 11:31
Comment ça ?
Accès rapide :
PHP / MySQL
HTML / CSS
Javascript
Autres technologies
Le site
Les 3H du PHP
Le bar
Script / Production personnelle
Remonter