5

アクセスを使用していますが、2つのテーブルがあります。

点:

id,x,y
1 32432432 143423232
2 32432443 143423300

ライン:

id startPoint endPoint
1  1          2

ここで、行を照会するときに、返されるテーブルにstartPointとendPointの両方のx、yが含まれるようにします。

私は参加を試みました:

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;

次に、startPointのみを含む次の結果を取得できます。

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

次に、次のような結果が必要なときにendPointを取得する方法(x2 y2はendPointの座標です):

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

2つ試しjoinましたが、動作しません。

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;
4

1 に答える 1

8

Accessには、複数の結合に対して奇妙な構文規則があります。そのようにかっこで囲んでください。

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;

追加の結合ごとに、最初のテーブルの前に別の左のパレンが必要であり、最後から2番目の結合の後に右のパレンが必要です。

于 2012-10-10T00:47:25.510 に答える