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.name複数選択をしたいのですがTable2.nameTable1.code LIKE '%b%'ORTable1.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

like 関数またはinstr関数を使用して2つのテーブルを結合するには

「いいね」の使い方

 **column_name1 like '%'column_name2'%'**

「インストルメント」の使用

 **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%'
于 2013-01-17T05:13:53.370 に答える
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%'

これは内部結合であるため、2 番目のテーブルに一致するコードがある場合にのみ、最初のテーブルから行が返されます。Table1 から一致する行を表示する場合は、LEFT JOIN を使用します。

于 2013-01-17T03:59:27.457 に答える
0

私が正しければ、次のようなものがうまくいくはずです:

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