SQL言語でデータを照会するために作成したデータベースの1つのテーブルにファイルの値をコピーしました。 Dbは通常の形ではありません、私はフィールドに値をコピーしました。 フィールドf1の同じ値で、すべてのレコードに対して同じ値のf2があるかどうかを確認することになります。列の値がコヒーレントに別の列にマップされているかどうかを調べる
f1の異なる値がf2の同じ値に関連付けられることもありますが、問題はありません。チェックが両方向(f1→f2とf2→f1)で正の場合は、明らかに2つのフィールドが1対1であることを意味します。この例では
例1
id | f1 | f2
1 | a | x
2 | b | y
3 | a | x
4 | c | x
ではf1の値が等しいため、クエリは私にTRUE(または類似した何かを)答える必要があります。1 F2の値が等しいことに対応しています。 f1の値に等しいでF2の異なる値を対応しているので、この例2で
例2
id | f1 | f2
1 | a | x
2 | b | y
3 | a | z
4 | c | x
は、クエリは、私がFALSE(または類似したもの)に答える必要があります。
例3
id | f1 | f2
1 | a | x
2 | b | y
3 | a | x
4 | c | z
この例では3クエリは、方向[1-> F2と〔2-> F1の両方にTRUE私に答える必要があります。
皆さん、助けをいただきありがとうございます。私は十分にはっきりしていることを願っております。もちろん、私は悪い英語をお詫びします。
にそれを変更することができます。最初の例ではf1の等しい値がf2の等しい値に相当するため、f1とf2の値が同じである異なる行について話している場合を除き、f1とf2の間には全く等しい値はありません。それでも、すべてのデータまたはその特定の行についてtrueを返すかどうかは不明です。どうか明らかにしてください。 –
あなたのコメントをありがとう、私の悪い説明を残していただきありがとうございます。 私は良くしようとしています: リクエスト:答えフィールドの同じ値のテーブル内のすべてのレコードに対して、f1がフィールドf2の同じ値に対応する場合にのみTRUE(または同等のもの)。 例2は、f1の値が同じでf2の値が異なる2つのレコードが存在するため、Falseです。 – Marco
このような状況が発生した場合はどうすればいいでしょう: 'a | x; z | y; c | a; a | c' aとxまたはaとcの間に等価性があるかどうかを知る方法?これが重要でない場合は、各行を他のすべての行と照合し、1つの行を他の行に検証するためにクロス結合を実行する必要があります。 –