このクエリを完了するために私を助けてください
select *
from table1 a
join table2_n n
on a.PHONE_NO like '%'|| (select substr(mobile_no,2,9) as mobile_no from table2)
テーブル 2 レコードはテーブル 1 に存在します。だから私はこのクエリからそれらすべてを取得する必要があります
サブクエリは必要ありません。データを直接結合できます。
select a.*
from table1 a
join table2 n
on a.PHONE_NO like '%'|| substr(mobile_no,2,9);
exists
または、サブクエリを使用してこれを記述することもできます。
select *
from table1 a
where exists (select null
from table2 n
where a.PHONE_NO like '%'|| substr(mobile_no,2,9));
table1 のレコードと一致する table2 に複数のレコードがあるdistinct
場合、そこに句を入れない限り、最初のクエリは t1 から複数の行を返します。
likeとsubqueryを使用する必要があるのはなぜですか。phone_no列を使用して2つのテーブルを結合すると、一致するすべてのレコードが返されます。
rownum=1 または where 条件を使用して、内側のサブクエリから 1 行のみを返します。そうしないと、table2 の複数のレコードに対して機能しません。