mysql passage de la version 4.x à la 5.0

page 1 page 2
Répondre
JuTs
JuTs
Déconnecté
JuTs
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'
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Tu peux nous donner le create de la table ?
JuTs
JuTs
Déconnecté
JuTs
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`)
)
JuTs
JuTs
Déconnecté
JuTs
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.
JuTs
JuTs
Déconnecté
JuTs
personne ?
LA GLOBULE
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.
JuTs
JuTs
Déconnecté
JuTs
si, justement (regarde mon CREATE TABLE). Et puis comme je l'ai indiqué, aucun problème sous mysql 4.
LA GLOBULE
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.
JuTs
JuTs
Déconnecté
JuTs
oui, le create que j'ai indiqué provient d'un dump de ma base obtenu depuis phpMyAdmin
JuTs
JuTs
Déconnecté
JuTs
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 :
  1.  
  2. SELECT * FROM programme AS p1, programme AS p2
  3. LEFT OUTER JOIN clubs AS clubHome ON clubHome.id_clubs = p1.id_clubs
  4.  

mais ça ne marche pas non plus

en revanche avec
  1.  
  2. SELECT * FROM programme AS p2, programme AS p1
  3. LEFT OUTER JOIN clubs AS clubHome ON clubHome.id_clubs = p1.id_clubs
  4.  

ça marche.
Apparement seul le dernier alias (p1 dans ce dernier exemple) est pris en compte. Pourquoi, je n'en sais rien
JuTs
JuTs
Déconnecté
JuTs
up
LupusMic
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.
JuTs
JuTs
Déconnecté
JuTs
voilà

  1.  
  2. +-----------------+----------------------+------+-----+---------------------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-----------------+----------------------+------+-----+---------------------+-------+
  5. | id_programme | smallint(5) unsigned | NO | PRI | 0 | |
  6. | id_saisons | smallint(2) unsigned | NO |PRI | 0 | |
  7. | id_equipes | tinyint(1) unsigned | NO | PRI | 0 | |
  8. | id_types_groupe | tinyint(1) unsigned | NO | PRI | 0 | |
  9. | id_groupes | smallint(4) unsigned | NO | PRI | 0 | |
  10. | id_clubs | int(10) unsigned | NO | PRI | 0 | |
  11. | date| datetime | NO | | 0000-00-00 00:00:00 | |
  12. | lieu | varchar(30) | NO | | | |
  13. | home | tinyint(1) unsigned | NO | | 0 | |
  14. | buts | tinyint(2) | NO | | -1 | |
  15. +-----------------+----------------------+------+-----+---------------------+-------+
  16.  
LupusMic
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é.
JuTs
JuTs
Déconnecté
JuTs
Comment ça ? smiley
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog