正しい出力を得るために2つのテーブルの間にINNER JOINを持つSELECTを取得することに問題があります。SQL Server内部で2つのテーブルを結合し、2つのフィールドでフィルタリングして余分なレコードを取得する
SELECT *
FROM PERSON_TABLE
WHERE MYSOMETHINGID = 123
結果は、私がインナーにしたい
ID PERSON_ID PERSON IS_SELECTED IS_BACKUP MYSOMETHINGID
2 -1 PERSON1 0 0 123
3 12 PERSON2 0 1 123
4 13 PERSON3 1 0 123
5 15 PERSON4 0 1 123
6 22 PERSON5 0 0 123
select *
from ASSIGNED_TABLE
where MYSOMETHINGID = 123
ID PERSON_ID PERSON MYSOMETHINGID
3 12 PERSON2 123
4 13 PERSON3 123
5 15 PERSON4 123
ですが、両方の会社に参加して= 1 IS_SELECTEDでレコードのみを選択して、PERSON_TABLEからレコードがASSIGNED_TABLE
に存在する場合はここに私のクエリがあります
IS_SELECTED = 1なぜ私が1の代わりに3つのレコードを取得するのか分かりません。不思議なことにIS_SELECTEDは3つのレコードすべてに対して1、すべてのIS_BACKUPについて0です。
助けを歓迎します。ありがとう。
私ができます」そのクエリがどのようにそれらの結果を返すかを見てください。 DDLステートメント、データのINSERT、予想される結果など、完全なレプロをお願いします。 これを行うと、自分で問題が見つかる可能性があります。もしそうでなければ、人々があなたの問題を調べることは容易です。 –
これらの結果を得るための唯一の方法は、コミットされていない更新を使用して異なる接続があり、別の接続または別のデータベースを使用して別のデータで実行している場合です。提示されたデータが与えられた場合、クエリは必要に応じて動作するはずです。だから何かが続いている。 Person_tableに異なるmysomethignIdsで複数回リストされたperson_IDがある場合... – xQbert
person_tableにperson_ID 13のレコードがいくつありますか?ちょうど1?それ以上の場合は、クエリに問題があります。 – xQbert