select : deux références sur une même table

select : deux références sur une même table - SQL/NoSQL - Programmation

Marsh Posté le 11-05-2010 à 13:55:40    

Bonjour,
 
Je cherche à afficher une carte en svg depuis une base de donnée. Pour cela j'ai deux tables :
 
point
idpoint
posX
poY
 
vecteur
idvecteur
idpoint1 (référence à la table point)
idpoint2 (référence à la table point)
 
j'ai déjà une boucle qui récupère les points et leurs coordonnées pour les afficher, je veux maintenant écrire une requête qui me permettra d'avoir la vue suivante :
 
vecteur + coordonnées
idvecteur
posX (point1)
posY (point1)
posX (point2)
posY (point2)
 
pour l'instant j'ai écrit la requête suivante :
 
SELECT idvecteur, idpoint1, idpoint2, `point`.posX, `point`.posY, `point`.posX, `point`.posY
FROM vecteur, point
 
qui ne marche pas (puisqu'il manque la condition :P )
 
Merci pour vos suggestions/aide  :D !!!
 
Feelic


Message édité par feelic le 11-05-2010 à 13:57:36
Reply

Marsh Posté le 11-05-2010 à 13:55:40   

Reply

Marsh Posté le 11-05-2010 à 14:04:32    

Code :
  1. SELECT vecteur.idvecteur,point1.poxX,point1.pos,point2.poxX,point2.posY
  2. FROM vecteur
  3. INNER JOIN point AS point1 ON point1.idpoint = vecteur.idpoint1
  4. INNER JOIN point AS point2 ON point2.idpoint = vecteur.idpoint2


Message édité par flo850 le 11-05-2010 à 14:04:45
Reply

Marsh Posté le 11-05-2010 à 14:07:02    

Il faut utiliser les alias dans le from pour identifier différemment deux fois la même table, et mettre l'alias en préfixe du nom du champ dans le select, avec une jointure sur elle-meme dans le where.

Reply

Marsh Posté le 11-05-2010 à 14:07:45    

feelic a écrit :

Cette requête ne fonctionne pas non plus :)
 
SELECT idLieu_Lieu, idLieu1, idLieu2, `point1`.posX, `point1`.posY, `point2`.posX, `point2`.posY
FROM Lieu_Lieu, Lieu AS point1, Lieu AS point2


tu as lu ce que je te propose ?

Reply

Marsh Posté le 11-05-2010 à 14:08:51    

j'l'ai envoyé avant de recharger la page :P
 
[edit]
 
ça marche super merci beaucoup ^^


Message édité par feelic le 11-05-2010 à 14:12:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed