MySQL子查询奇怪的行为

时间:2011-11-23 09:23:09

标签: mysql subquery

我正在搜索搜索,但结果应该是从三个表中获取的,只有两个字符才能正常工作,之后返回空行,所以任何人都可以帮忙 这是我的查询

SELECT * 
FROM tables
WHERE table2_id
IN (

SELECT id
FROM table2
WHERE table3_id
IN (

SELECT id
FROM table3
WHERE name LIKE  '%in%'
)
OR
)
name LIKE 'in%' 
AND id <>  '8'

任何建议,如果我做出正确的事情,当它超过两个字符时会出现什么问题

1 个答案:

答案 0 :(得分:3)

这是一个完全荒谬的查询!使用联接 - 这就是它的用途!

SELECT tables.*
FROM tables JOIN table2 ON tables.table2_id = table2.id
     JOIN table3 ON table2.table3_id = table3.id
WHERE (name LIKE  '%in%' OR name LIKE 'in%' AND id <> 8