からデータを取得するために正しいSQLクエリを作成するには、私は、SQLへの初心者ですとdatabases..Iが柱とタグの間どのように2つのテーブル
all posts that have tags with tagname='t1'
関係を見つけるために、SQLクエリを作成する必要があることは、多くの-にありますだから、-many
多対多の関係が結合テーブルを必要とするので、私は
create table Posts(
p_id int ,
p_name varchar
);
create table Tags(
t_id int ,
t_name varchar
);
以下のようにスキーマおよびいくつかのINSERT文を作成し、私はそれだけでなく
を作成create table Posts_Tags(
p_id int,
t_id int
);
insert into Posts values('1','P1');
insert into Posts values('2','P2');
insert into Posts values('3','P3');
insert into Tags values ('1','t1');
insert into Tags values ('2','t2');
insert into Tags values ('3','t3');
insert into Tags values ('4','t4');
insert into Tags values ('5','t5');
insert into Posts_Tags values('1','1');
insert into Posts_Tags values('1','2');
insert into Posts_Tags values('2','1');
insert into Posts_Tags values('2','3');
insert into Posts_Tags values('3','5');
ここで、タグを持つすべての投稿をt_name='t1'
で取得するにはどうすればよいですか? only the two tables Posts and Tags
を照会して正しい結果を得ることはできますか?また、Posts_Tagsテーブルも使用する必要がありますか?
select p.*
from Posts p
join Posts_Tags pt on pt.p_id = p.p_id
join Tags t on t.t_id = pt.t_id
where t.t_name = 't1';
このテーブルレイアウトがMANTを作成するための正しい方法です:あなたは3つのテーブルを必要とする -
することはありません