在多个表中搜索

时间:2016-06-07 12:04:40

标签: mysql sql join

我有树表 - table1table2table3。他们的结构是这样的:

table1 = id | data
          1 | x
          2 | y

table2 = id | table1_id | table3_id | data
          1 | 1         | 1         | a
          2 | 2         | 2         | b
          3 | 1         | 3         | c
          4 | 2         | 3         | d

table3 = id | data
          1 | e
          2 | f
          3 | g

现在我想按table3.data搜索(使用LIKE)并获取相关的table1数据。 SQL应该怎么样?

例如:

在我的网络应用程序中输入“g” - 所以我会查看table3返回ID = 3,在table2中有2行table3_id = 3且结果我想得到的是table1.id = table2.table1_id所有行的集合

id | table3.data
 1 | g
 2 | g

1 个答案:

答案 0 :(得分:2)

嗯,你真的不需要使用LIKE,你需要做一个简单的JOIN任务,LIKE用于部分字符串比较 - > 'Full string' LIKE '%Fu%'

试试这个:

SELECT t1.id as t1_id,t3.data as t3_data
FROM table3 t3
INNER JOIN table2 t2
 ON(t3.id = t2.table3_id)
INNER JOIN table1 t1
 ON(t2.table1_id = t1.id)