select * from tableA a where a.name in (select b.name from tableB b where b.id = 'jfwejfewioijo');
其中select b.name from tableB b where b.id = 'jfwejfewioijo' 可能有多条记录
然而,我需要的条件是表a的name like 选出记录的name
不用存储过程,用一句sql可写出来吗?
eg:
查询A 表 数据 且 name in ("张三" , "李四六","王八五") 这是另一个表 选出的数据
a表中 有个名字 为 李四 的也应该查出来
************************************************
sqlserver:
SELECT *
FROM tableA a
WHERE EXISTS
(SELECT *
FROM tableB b
WHERE b.id = '11111' AND CharIndex(a.name, b.name) > 0);
SELECT a.*
FROM tableA a INNER JOIN
tableB b ON b.name LIKE '%' + a.name + '%'
WHERE (b.id = '11111')
oracle :
SELECT a.*
FROM tableA a INNER JOIN
tableB b ON b.name LIKE '%' || a.name || '%'
WHERE (b.id = '11111')