notowned は SQL の構文です。サブクエリとメイン クエリの間でよく使用されます。条件判断に使用されます。条件に基づいてブール値を返し、次の操作の続行方法を決定します。存在しない場合も同様で、存在する場合や存在する場合の反対の場合も同様です。
Not selected は、exists の反対です。したがって、notowned の使用法を理解するには、まず、exists と in: の違いと特徴を理解します。
exists: 何を返すかは不明ですが、結果セットを返すかどうかに重点が置かれています。例:
select name from student where sex = 'm' and mark exists(select 1 from grade where ...)
ログイン後にコピー
exists ガイド句が結果セットを返す限り、exists 条件は確立されます。返されるフィールドに注意してください。常に 1 です。「グレードから 2 を選択...」に変更すると、返されるフィールドは 2 になり、この数値は意味がありません。したがって、exists 句は何が返されるかではなく、返される結果セットがあるかどうかを考慮します。
exists と in の最大の違いは、in 句が 1 つのフィールドしか返せないことです。たとえば、次のとおりです。
select name from student where sex = 'm' and mark in (select 1,2,3 from grade where ...)
ログイン後にコピー
in 句は 3 つのフィールドを返しますが、これは誤りです。exists 句は許可されます。 , ただし、返されるフィールドは 1 つだけです。1、2、3 の任意の 2 つのフィールドを削除するだけです。
Notowned と not in は、それぞれ、exists と in の反対です。
exists (sql 返回结果集,为真)
ログイン後にコピー
括弧内にある SQL ステートメントの結果に結果があるかどうかに主に依存します。結果がある場合: where 条件は引き続き実行されます。結果がない場合: where 条件は実行されたとみなされます。確立されていない。
not exists (sql 不返回结果集,为真)
ログイン後にコピー
主に、存在しない括弧内の SQL ステートメントに結果があるかどうかによって決まります。結果がない場合: where 条件は引き続き実行されます。結果がある場合: where 条件は実行されないとみなされます。真であります。
存在しない: テスト後、サブクエリとメイン クエリに関連する条件がある場合、これはメイン クエリからサブクエリ データを削除することと同じです。
例:
テスト データ: ID 名
1 1 Zhang San
2 李四
select * from test c where not exists
(select 1 from test t where t.id= '1' )
--无结果
ログイン後にコピー
rree
以上が使用法が存在しませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。