跨多个表的SQL查询

时间:2012-06-08 08:17:49

标签: mysql sql

我只有一个非常基本的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不清楚,请确定要求清晰。

1 个答案:

答案 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%')