別の列で1つの列を見つけるのに問題があります。私はこのコードを持っています:
SELECT company.name
FROM company, person
WHERE company.name not like '%'+person.sirname+'%'
2つのテーブルがあり、列を持つ会社-名前
Company of mr. Black
と列を持つ人-sirname
Black
しかし、このコードを実行すると、「無効な番号」というエラーになります
別の列で1つの列を見つけるのに問題があります。私はこのコードを持っています:
SELECT company.name
FROM company, person
WHERE company.name not like '%'+person.sirname+'%'
2つのテーブルがあり、列を持つ会社-名前
Company of mr. Black
と列を持つ人-sirname
Black
しかし、このコードを実行すると、「無効な番号」というエラーになります
あなたは2つのテーブルを結合しようとしていると思います。次のような明示的なJOIN
構文を使用してみてください。
SELECT company.name
FROM company
INNER JOIN person ON company.name not like '%'+person.sirname+'%'
文字列は||と連結する必要があります 演算子(そしておそらくJOIN条件が必要です):
SELECT company.name
FROM company, person
WHERE company.name not like '%' || person.sirname || '%'
AND person.company_id = company.id
+演算子を使用すると、データベースは名前を数値に変換しようとし、無効な数値というエラーが発生します。
内部結合を使用する必要があると思う最良のことは、IDも使用することではなく、これが役立つと思います。質問を間違えなかった場合