これを試して、最初の8文字のみを比較してください:
SELECT r.domainid, r.dombegin, r.domend, d.ddid
FROM domainregion r
JOIN dyndomrun d ON r.domainid::varchar(8) = d.ddid
ORDER BY r.domainid, d.ddid, r.dombegin, r.domend;
キャストは、末尾の文字を暗黙的にトリミングします。 ddid
そもそも8文字しかない。処理する必要もありません。これは同じことを達成します:
JOIN dyndomrun d ON left(r.domainid, 8) = d.ddid
ただし、文字列関数left()
PostgreSQL9.1でのみ導入されました。以前のバージョンでは、次のように置き換えることができます:
JOIN dyndomrun d ON substr(r.domainid, 1, 8) = d.ddid
__
初心者向けの基本的な説明:
-
クエリは
JOIN
を使用します 。 詳細についてはマニュアルをご覧ください 。 -
FROM domainregion r
FROM domainregion AS r
の略です。 。AS
この場合、PostgreSQLでは単なるノイズです。 テーブルエイリアス クエリが短くて読みやすくなりますが、ここでは他の影響はありません。たとえば、テーブルエイリアスを使用して、同じテーブルを複数回含めることもできます。 -
結合条件
ON r.domainid::varchar(8) = d.ddid
2つの式が完全に一致する行のみを結合します。繰り返しになりますが、これらのマニュアルの基本 (またはその他のソース)。
これは単純なクエリであり、ここで説明することはあまりありません。