我已经找到了解决方案,但到目前为止我还没有找到它。
所以这里的问题,就是说我有2个表:
表1
name | code
-------------------
a | [a][b][c]
b | [a][c][d]
c | [a][e]
表2
code | name
-------------------
a | aaaa
b | bbbb
c | cccc
d | dddd
e | eeee
我想做多个选择Table1.name
和Table2.name
Table1.code LIKE '%b%'
或Table1.code LIKE '%e%'
所以它应该是这样的结果:
name | name
------------------
a | aaaa
c | cccc
我确实尝试过:
SELECT Table1.name, Table2.name
FROM Table1, Table2
WHERE Table1.code LIKE '%b%' OR Table1.code LIKE '%e%'
但它没有用。我是新手,非常感谢任何帮助:)
答案 0 :(得分:2)
为了使用喜欢功能加入2表,或者 instr 功能
使用“喜欢”
**column_name1 like '%'column_name2'%'**
使用“instr”
**instr(column_name1,column_name2)>0**
其中 column_name1引用列而 column_name2是您正在搜索的模式
在您的示例中尝试此
使用
SELECT Table1_name, Table2_name FROM
( SELECT Table1.name table1_name
,Table1.code table1_code
,Table2.name table2_name
,Table2.code table2_code
FROM Table1 JOIN Table2 ON
(Table2.name LIKE '%'||Table1.name||'%') OR (Table1.code LIKE '%'||Table2.code||'%')
WHERE Table1.name=Table2.code
) new1
WHERE Table1_code LIKE '%b%' OR Table1_code LIKE '%e%'
使用INSTR
SELECT Table1_name, Table2_name FROM
( SELECT Table1.name table1_name
,Table1.code table1_code
,Table2.name table2_name
,Table2.code table2_code
FROM Table1 JOIN Table2 ON
INSTR(Table2.name,Table1.name)>0 OR INSTR(Table1.code,Table2.code)>0
WHERE Table1.name=Table2.code
) new1
WHERE Table1_code LIKE '%b%' OR Table1_code LIKE '%e%'
答案 1 :(得分:1)
SELECT t1.name, t2.name FROM
Table1 t1 INNER JOIN Table2 t2 ON (t1.name = t2.code)
WHERE t1.code LIKE '%b%' OR t1.code LIKE '%e%'
由于这是一个内连接,如果第二个表中存在匹配的代码,则只返回第一个表中的行。如果您想要显示Table1中的任何匹配行,请使用LEFT JOIN
答案 2 :(得分:0)
如果我是对的,这样的事情对你有用:
SELECT * FROM table1 AND table2 WHERE table1code LIKE '%e%'