0

重複の可能性:
2 つのテーブルから選択する単純な SQL (結合とは?)

SQL クエリの質問があります。2 つのテーブル:

位置

lid  State
---  -----
1    MI
2    FL
3    CA

時間

tid lid
a   1
b   1
c   2
d   2
e   3
f   3

次に、これら 2 つのテーブルを接続します。私が行った場合:

select l.lid, l.state, t.tid 
from location l, time t 
where l.lid=t.lid

次に、次の結果が得られます。

lid state tid
--- ----- ---
1   MI    a
1   MI    b
2   FL    c
2   FL    d
3   CA    e
3   CA    f

これを取得する代わりに、次の結果が必要です。

lid state tid1 tid2
--- ----- ---- ----
1   MI    a    b
2   FL    c    d
3   CA    e    f

クエリはどのように記述すればよいですか?

また、Timeテーブルには、蓋ごとにちょうど 2 つのレコードがあると仮定します。

4

3 に答える 3

1
SELECT 
    l.lid, l.state, 
    MIN(t.tid) AS tid1,
    MAX(t.tid) AS tid2
FROM
        location AS l
    JOIN 
        time AS t 
            ON l.lid = t.lid
GROUP BY
    l.lid, l.state ;
于 2012-07-19T14:12:13.643 に答える
-1

この問題に対する独自のバージョンのソリューションを入手しました。

2 つのタイムテーブルに接続し、大なり演算子を使用するだけです。

select * from
location l, time t1, time t2
where l.lid=t1.lid and l.lid=t2.lid and t1.tid<t2.tid
于 2012-07-19T17:01:42.680 に答える