我只有一个非常基本的SQL知识,所以请原谅,如果这是一个愚蠢的Q.我在网上搜索但无法得到答案。
我有三张桌子:
标题
id int< - PK
artist_id int
album_id int
desc varchar
艺术家
arist_id int< - FK
desc varchar
专辑
album_id int< - FK
desc varchar
标题数据
1,1,1,“给我一切”
1,2,2,“更多”
1,3,3,“让你美丽的是什么”
艺术家数据
1,“比特犬”
2,“亚瑟小子”
3,“一个方向”
专辑数据
1,“Planet Pit”
2,“更多”
3,“Up Up Night”
如果我想搜索一个表,我喜欢这样:
从艺术家中选择*,其中desc类似'%direction%';
我的目标是在三个表格中进行搜索。搜索SQL查询应返回“title”表的行,其中使用artist_id和album_id字段(即链接键)在三个表中任何一个的“desc”字段中满足搜索条件。
我的大脑今天完全糊涂了。如果Q不清楚,请确定要求清晰。
答案 0 :(得分:3)
您需要在表之间创建inner join
,如下所示:
select t.* from title t
inner join artist ar on ar.artist_id = t.artist_id
inner join album al on al.album_id = t.album_id
where (t.desc like '%direction%' or ar.desc like '%direction%' or al.desc like '%direction%')