2

データベースに関する宿題を 2 日間続けました...

私は MS Access で作業しており、行数が同じ R と S の 2 つのテーブルがあります。彼らには何の関係もありません。テーブル R に 2 つの列 ( という名前) しかないA, B)ため、テーブル S (という名前) があるとします。B, C).

テーブル R には、次の 3 つのレコードしかありません。(a1,b1), (a1,b2), (a2,b1)

テーブル S には、次の 3 つのレコードしかありません。(b1,c1), (b1,c3), (b2,c2)

これら 2 つのテーブルを 1 つに連結する必要があるため、新しいテーブルには 4 つの列 (RA、RB、SB、SC) があり、次のレコードが含まれます。

(a1,b1,b1,c1),  
(a1,b2,b1,c3),  
(a2,b1,b2,c2)

それだけです...問題は、SQLでこれをどのように達成するのですか??

4

4 に答える 4

3

非常に不自然ですが、MS Access で実行されます。

SELECT x.f0, x.F1, y.F0, y.F1
FROM (
     SELECT DISTINCT r.F0, r.F1, 
         (select count(*) 
         from r a 
         where a.f0+a.f1<=r.f0+r.f1) AS Expr1
      FROM r)  AS x 
INNER JOIN (
     SELECT DISTINCT s.F0, s.F1, 
        (select count(*) 
         from s a 
         where a.f0+a.f1<=s.f0+s.f1) AS Expr1
     FROM s)  AS y 
ON x.Expr1 = y.Expr1;

表 S

F0  F1 <-- Field names
b1  c1
b1  c3
b2  c2

表 R

F0  F1 <-- Field names
a1  b2
a2  b1
a1  b1

クエリ結果

x.F0    x.F1    y.F0    y.F1
a1      b1      b1      c1
a1      b2      b1      c3
a2      b1      b2      c2
于 2012-09-08T21:04:49.287 に答える
0

私はこれについてChaseを使用していますが、次のようなSQL結合を実行したいようです。

SELECT *
FROM TableR R, TableS S
WHERE R.id=S.id;

これが言っていることは平易な英語です:両方からすべての列/行を選択し、の主キーの同じ主キーの値と等しい場合Table RTable S IDTable RIDTable S

使用しているデータベースがわかりませんが、もう少し情報があります。

于 2012-09-08T20:32:51.497 に答える
0

OK、私の答えは他の答えとは大きく異なります。

2つのテーブルの間に関係はないと述べました。他のみんなはRBとSBの関係を作ろうとしていますが、あなたは関係がないと言っていました。

したがって、関係がない場合は、入れません。したがって、得られるものは次のとおりです。 SELECT R. , S. FROM R,S

結果は両方のテーブルのすべての列になり、返される行は R からの行に S からの行を掛けたものになります。上記の例では、9 つ​​のレコードが返されます。

于 2012-09-08T22:54:35.370 に答える
0

あなたがしたいことは、行番号で2つのテーブルを結合することです。このスレッドをチェックしてください

これを行う方法の例。

于 2012-09-08T20:25:31.753 に答える