2012-10-10 11 views
5

używam dostęp, a ja mam dwie tabele:dołączyć składni w dostępie

punkt:

id,x,y 
1 32432432 143423232 
2 32432443 143423300 

linia:

id startPoint endPoint 
1 1   2 

Teraz, kiedy kwerendy linię, chcę zwrócona tabela będzie zawierać zarówno x, y punktu początkowego, jak i punkt końcowy.

Próbowałem dołączyć:

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; 

Następnie można uzyskać następujący wynik które zawierają tylko startowy.

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

Potem jak sprowadzaniu punktu końcowego podczas Chcę wynik takiego (x2 y2 to współrzędne punktu końcowego):

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

Próbowałem dwa join, ale to nie działa.

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

Nie mam dla ciebie odpowiedzi, ale przedstawię komentarz z mojej Braile keyboard. Łączenie składni MS Access sprawiło, że wykopałem sobie oczy łyżką. – Dave

+0

Ja też, ale musimy go używać – hguser

Odpowiedz

7

Access ma dziwne reguły składni dla wielu złączeń. Musisz umieścić je w nawiasach, jak to.

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; 

Każde dodatkowe połączenie wymaga innego lewego arkusza przed pierwszym stołem i prawej krawędzi po drugim połączeniu.

+0

działa, dziękuję. BTW, czy możesz mi zaproponować kilka artykułów składniowych SQL? – hguser

+1

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

Powiązane problemy