以下のSQLがあります。テーブルへの内部結合を取得し、値をハードコーディングすると、2つのレコードが取得されます。しかし、内部結合ステートメントを使用すると、1つのレコードを取得するだけです。MYSQLでは、like句は大文字と小文字を区別しないことを認識しています。これが以下のSQLです。なぜそれが行を返すだけなのかわかりません。
SELECT
a.project_code as projectCode,
a.project_name as projectName,
a.project_creation_date as projectCreationDate,
a.project_end_date as projectEndDate,
a.project_status as projectStatus
from projects a
inner join tmp_rec_naren8 b
on a.project_name like concat("%",b.expertise_desc,"%")
OR a.project_description like concat("%",b.expertise_desc,"%") ;
上記を次のように変更した場合:
select *
from projects
where project_name like '%java%'
OR project_description like '%java%';
1行ではなく2行を取得します。
テーブルtmp_rec_naren8
には列が1つだけexpertise_desc
あり、次のデータが含まれています。
expertise_desc
--------------
XML
Python
DWH
Java
テーブルprojects
には多くの列があります:..しかし、以下は関連するものです
project_code sr_user_name project_name project_descriiption ..
-----------------------------------------------------------
1 naren5 POS C++, XML,Java
2 naren7 INV Networking
3 naren9 CCV Java, Unix
最初のクエリは1行を返します。
project_code sr_user_name project_name project_descriiption ..
---------------------------------------------------------------
1 naren5 POS C++,XML,Java
2番目のクエリは2行を返します
project_code sr_user_name project_name project_descriiption ..
-----------------------------------------------------------
1 naren5 POS C++, XML,Java
3 naren9 CCV Java, Unix