1

'sid'が主キーである'students'テーブルを作成し、sidに多くの値を挿入しました。'courses'という2番目のテーブルを作成し、主キー'cid'を持っています。cidの値も入力しました。ここで、「enroll」というリレーションテーブルを作成します。

create table enroll(
    grade char(2),
    sid int not null,
    cid int not null,
    primary key(sid,cid),
    foreign key (cid) references courses(cid) on delete cascade,
    foreign key (sid) references students(sid) on delete cascade
);

さて、を使用してテーブルを表示しようとすると、select * from enroll; 出力が得られません。「0行が返されました」と表示されます。どうしてこれなの?他のテーブルのsidとcidのすべての値を持っているはずではありませんか?

4

2 に答える 2

0

テーブル構造、スキーマを作成したばかりで、テーブルが空であるため、結果が得られません。

于 2012-04-18T18:09:26.130 に答える
0

別のテーブルの値から新しいテーブルを作成するには、次のようにします。

CREATE TABLE new_table AS (SELECT * FROM old_table);
  • select ステートメントは、プルされるフィールドになります。
  • 列の名前を次のように変更できます: Select [field name] as [what you want field name to be]

詳細については、この記事をお読みください

とにかくあなたの特定のケースのために:

 Create table enroll AS (Select s.sid AS 'Sid', c.cid AS 'Cid' from courses c inner join students s on c.something = s.something)

「.something」を学生のIDに置き換えます

于 2012-04-18T18:15:42.500 に答える