0

私はこのテーブルを持っています:

Create table table1 (
 id Int UNSIGNED NOT NULL,
 name VARCHAR(255) NOT NULL, 
 Primary Key(id),
 Unique Key `name` (`name`)) 
ENGINE = InnoDB;

Create table table2 (
 id1 Int UNSIGNED NOT NULL,
 id2 Int UNSIGNED NOT NULL,
 Primary Key (id1,id2)) 
ENGINE = InnoDB;

Alter table table2 add Foreign Key (id1) references table1 (id) 
on delete  restrict on update  restrict;
Alter table table2 add Foreign Key (id2) references table1 (id) 
on delete  restrict on update  restrict;

で言及されているview両方のユーザー (から) の名前を含むのタイプを作成する方法はありますか? ご協力いただきありがとうございます。table1table2

4

2 に答える 2

1

これを試して:

CREATE OR REPLACE VIEW ViewName
AS
SELECT
    T1.Name Name1, T2.Name Name2
FROM Table2 T
    JOIN Table1 T1
        ON T.Id1 = T1.Id
    JOIN Table1 T2
        ON T.Id2 = T2.Id;
于 2013-02-08T10:30:12.097 に答える
0

これにより、ID が Table2 の両方の列に存在するすべての名前がビューに配置されます。

CREATE VIEW MyView AS SELECT DISTINCT Name FROM Table1 
WHERE Id IN (SELECT DISTINCT Id1 FROM Table2 
UNION SELECT DISTINCT Id2 FROM Table2)
于 2013-02-08T10:27:38.823 に答える