3

我已经搜索了解决方案,但到目前为止我还没有找到它。

所以这里的问题,假设我有 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.nameTable2.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%'

但它没有用。我是这方面的新手,任何帮助深表感谢:)

4

3 回答 3

2
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

于 2013-01-17T03:59:27.457 回答
2

为了使用like 函数或instr函数加入 2 个表,将

使用“喜欢”

 **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%'

使用指令

 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%'
于 2013-01-17T05:13:53.370 回答
0

如果我是对的,这样的事情应该适合你:

SELECT * FROM table1 AND table2 WHERE table1code LIKE '%e%'
于 2013-01-17T03:40:13.267 回答