私の下の2つのテーブルで、特定の条件で内部結合クエリを実行する場所を探してください。Sqlクエリ文字列内の特定のデータを持つ内部結合
テーブル名: - TABLE1
テーブル名: - 表2 table2の列のSrで
#後に似ているいくつかの数のがありますテーブル1欄Sr番号です。その特定の番号に応じて参加します。
私は、どの状況で説明された状況で内部の関節をすることができますか教えてください。
私の下の2つのテーブルで、特定の条件で内部結合クエリを実行する場所を探してください。Sqlクエリ文字列内の特定のデータを持つ内部結合
テーブル名: - TABLE1
テーブル名: - 表2 table2の列のSrで
#後に似ているいくつかの数のがありますテーブル1欄Sr番号です。その特定の番号に応じて参加します。
私は、どの状況で説明された状況で内部の関節をすることができますか教えてください。
Working Demo from RexTester.com
仮定:table2.Nameは常にDOCS FROMテーブル1
SELECT T1.Name, T2.value
FROM table2 T2
INNER JOIN table1 T1
on T1.SR = substring_index(T2.Name,'#',-1);
にマッチング数字が続く正確に1 #
hastag /ポンド記号/番号記号でフォーマットされている:
SUBSTRING_INDEX(str,delim,count)
文字列strから区切り文字delimのカウントオカレンスの前に部分文字列を返します。 countが正の場合は、最後の区切り文字の左側にあるすべてのものが返されます。 countが負の場合は、最後の区切り文字の右側にあるものすべてが返されます。 SUBSTRING_INDEX()は、delimを検索するときに大文字と小文字を区別した一致を実行します。
SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
'www.mysql'
SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
'mysql.com'
免責事項:結合で文字列操作を使用している場合、インデックスは使用できません。
'substring_index()'を使用して、#の右側の値を分けて、それを結合条件として使用します。インデックスを使用することができないため、高速になるとは思わないでください。 [DOCS](https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index) – xQbert
これらの数字を他の列に抽出する方が良いでしょうか? –