2012-10-10 21 views
5

estoy usando el acceso, y tengo dos tablas:la sintaxis de combinación en el acceso

punto:

id,x,y 
1 32432432 143423232 
2 32432443 143423300 

línea:

id startPoint endPoint 
1 1   2 

Ahora, cuando me consultan la línea, quiero la tabla devuelta contendrá tanto la x, y del punto de inicio como el punto final.

He tratado de la unión:

select line.*,point.x as x1,point.y as y1 from line as line join point as point on line.startPoint=point.id where line.id=1; 

Entonces puede obtener el siguiente resultado, que sólo contiene el punto de inicio.

id startPoint endPoint x1 y1 
1 1   2  ...... 

Entonces cómo retrive el punto final, mientras que quiero que el resultado como este (x2 y2 es la coordenada del punto final):

id startPoint endPoint x1 y1 x2 y2 
1 1   2  ...... 

probé dos join, pero no funciona.

select line.*,point1.x as x1,point1.y as y1,point2.x as x2,point.y as y2 from line as line left join point1 as point on line.startPoint=point1.id left join point as point2 on line.endPoint=point2.id where line.id=1; 
+2

No tengo una respuesta para usted, pero proporcionaré un comentario de mi teclado Braile. La sintaxis de la unión de MS Access me hizo sacar los ojos con una cuchara. – Dave

+0

yo también, sin embargo, tenemos que usarlo – hguser

Respuesta

7

El acceso tiene reglas de sintaxis raras para combinaciones múltiples. Tienes que ponerlos entre paréntesis como tal.

select line.*, point1.x as x1,point1.y as y1, 
    point2.x as x2, point.y as y2 
from (line as line 
left join point as point1 
on line.startPoint = point1.id) 
left join point as point2 
on line.endPoint = point2.id 
where line.id = 1; 

se unen a cada uno adicional requiere otro paréntesis de la izquierda antes de la primera tabla y un paréntesis de la derecha después de la segunda a la última combinación.

+0

funciona, gracias. ¿Cómo me puede sugerir algunos artículos de sintaxis SQL? – hguser

+1

@hguser: [MSDN] (http://msdn.microsoft.com/en-us/library/office/bb259125%28v=office.12%29.aspx) –

Cuestiones relacionadas