0

みなさん、こんにちは!

私はこれについて数日間熟考していて、誰かが私を正しい方向に向けることができることを望んでいました:

駅のリンクが記載されたテーブルがあります。

stationID
lineID

接続されているすべてのステーション間でステーションペアを生成したい。ステーションは2つの場合に接続されます。

  1. それらが同じlineIDを持っている場合(つまり、直接接続されている場合)
  2. 線が交差する場合(共通の測点がある場合は線が交差します)。

どうすればいいですか?ご意見やアイデアをよろしくお願いします!

4

2 に答える 2

0

をテーブルに保管しないlineIDでください。代わりに、 、、 のstation3 つのテーブルを使用します。3 番目のテーブルは駅と路線を組み合わせたもので、0、1、または複数の路線を持つ駅の可能性を示しています。stationlinestation_line

station:
  ID
  name

line:
  ID
  name

station_line:
  station
  line
于 2013-01-29T09:57:25.723 に答える
0

これをチェックしてください(SQLFiddle):

select distinct a.stationName as 'st1', b.stationName as 'st2', a.lineId from 
tbl as a, tbl as b where 
(a.lineId in (select lineId from tbl where stationId in 
              (select stationId from tbl where lineId=b.lineId)) && 
 a.stationId<>b.stationId) ;
于 2013-01-29T09:58:45.990 に答える