2

我只有非常基本的SQL知识,所以如果这是一个愚蠢的Q,请原谅。我在互联网上搜索但无法得到答案。

我有三张桌子:

标题

id int <- PK

艺术家 ID 整数

专辑 ID 整数

desc varchar

艺术家

arist_id int <- FK

desc varchar

专辑

专辑ID int <- FK

desc varchar


标题数据

1、1、1,“给我一切”

1、2、2、“更多”

1, 3, 3, “什么让你美丽”

艺人资料

1、“斗牛犬”

2、《引路人》

3、《一个方向》

专辑数据

1、《星球坑》

2、“更多”

3、《彻夜未眠》

如果我想搜索一个表,我会这样做:

select * from artist where desc like '%direction%';

我的目标是在三个表中进行搜索。搜索 SQL 查询应返回“title”表的行,其中使用 artist_id 和 album_id 字段(它们是链接键)在三个表中的任何一个的“desc”字段中满足搜索条件。

今天我的大脑完全糊涂了。如果 Q 不清楚,请询问清楚。

4

1 回答 1

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%')
于 2012-06-08T08:24:44.487 回答