我有树表 - table1
,table2
和table3
。他们的结构是这样的:
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
答案 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)