¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

4.15. ���䤤��碌��

������Ǥ� PostgreSQL �ǻ��ѤǤ��� SQL �������䤤��碌���դ����������ޤ���������ǵ��ܤ������٤Ƥμ��Ϸ�̤Ȥ���������(��/��)���֤��ޤ���

EXISTS

EXISTS ( subquery )

EXISTS �ΰ�����Ǥ�դ� SELECT ʸ�ޤ������䤤��碌 �Ǥ������䤤��碌�Ϥ��줬���餫�ιԤ��֤��Τ��ݤ��η���Τ����ɾ������ޤ����⤷��ĤǤ�Ԥ��֤��ΤǤ���С�EXISTS �η�̤Ͽ��Ȥʤꡢ���䤤��碌���Ԥ��֤��ʤ���� EXISTS �η�̤ϵ��Ȥʤ�ޤ���

���䤤��碌�Ϥ��μ����Ϥ�Ǥ����䤤��碌�����ѿ��򻲾ȤǤ��������ѿ������䤤��碌�ΰ�Ĥ�ɾ��������Ǥ�����Ȥ��ƿ��񤤤ޤ���

���䤤��碌�ϺǸ�δ���ޤǹԤ����ˡ�����Ū�˾��ʤ��Ȥ��ĤιԤ��֤��줿���ɤ�����Ƚ�ꤷ�����­�������ޤǼ¹Ԥ���ޤ��������Ѥ����뤫�ʤ���ͽ�ۤ���Τ��񤷤��Τǡ�(�������󥹴ؿ���ƤӽФ��褦��)���餫�������Ѥ�������䤤��碌�򵭽Ҥ���Τϸ������ȤǤϤ���ޤ���

��̤ϲ��餫�ιԤ��֤����Τ��˰�¸���������ιԤ����Ƥˤϰ�¸���ʤ����Ȥ��顢���䤤��碌�ν��ϥꥹ�Ȥ��̾ﶽ̣�Τ����ΤǤϤ���ޤ��󡣶��̤��������ǥ��󥰤Τ�������Ϥ��٤Ƥ� EXISTS �ƥ��Ȥ� EXISTS(SELECT 1 WHERE ...) �Ȥ��ä������ǵ��Ҥ��뤳�ȤǤ����Ȥϸ��äƤ⡢INTERSECT ��Ȥ����䤤��碌�Τ褦�ˤ��Υ롼��ˤ��㳰������ޤ���

����ʿ�פ���� col12 ����������Τ褦�Ǥ��������Ȥ� tab2 �ιԤ�ʣ�����פ����Ȥ��Ƥ� tab1 �Τ��줾��ιԤ��Ф��ư�Ĥν��ϹԤ��������ޤ���

SELECT col1 FROM tab1
    WHERE EXISTS(SELECT 1 FROM tab2 WHERE col2 = tab1.col2);

IN (scalar form)

expression IN (value[, ...])

IN �Τ��η����α�¦�ϥ����顼�����ݳ�̤dz��줿�ꥹ�ȤǤ�����¦�μ��η�̤���¦�μ��Τɤ줫����������硢��̤Ͽ��Ǥ�������ϼ���ɽ��ˡ�δ�ά���Ǥ���

expression = value1
OR
expression = value2
OR
...

��¦�μ��� NULL ���������硢�ޤ��ϱ�¦���ͤ���������Τ�̵���ƾ��ʤ��Ȥ��Ĥα�¦�μ��� NULL �򻺤ߤ�����硢IN ��ʸ�η�̤ϵ��Ǥ�̵�� NULL �Ȥʤ�ޤ�������� NULL �ͤ�����Ū���ȹ礻���Ф��� SQL ���̾�μ����˽�����ΤǤ���

Note: ���� IN �η��������������䤤��碌���ǤϤ���ޤ��󤬡����䤤��碌 IN ��Ʊ�����ʸ�񲽤���Τ���Ŭ�Τ褦�Ǥ���

IN (subquery form)

expression IN (subquery)

IN �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ����Τ� 1 ����֤��ʤ���Фʤ�ޤ��󡣺�¦�μ������䤤��碌�η�̤Τ��줾��ιԤ���ӡ�ɾ������ޤ������䤤��碌�ιԤ���������Τ����Ĥ��ä���硢 IN �η�̤Ͽ��Ȥʤ�ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)�������Ԥ����Ĥ���ʤ���硢��̤ϵ��Ǥ���

��¦�μ��� NULL ���������硢�ޤ��ϱ�¦���ͤ���������Τ�̵���ƾ��ʤ��Ȥ��Ĥα�¦�μ��� NULL �򻺤ߤ�����硢IN ��ʸ�η�̤ϵ��Ǥ�̵�� NULL �Ȥʤ�ޤ�������� NULL �ͤ�����Ū���ȹ礻���Ф��� SQL ���̾�μ����˽�����ΤǤ���

EXISTS ��Ʊ���褦�����䤤��碌���Ǹ�ޤ�ɾ�������Ȼפ�����Τϸ�������ޤ���

(expression, expression[, ...]) IN (subquery)

IN �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ���¦�Υꥹ�Ȥˤ��뼰�ο������Τ�Ʊ����������֤��ʤ���Фʤ�ޤ��󡣺�¦�μ������䤤��碌�η�̤Τ��줾��ιԤ��Ф����Ԥ˴ؤ���ɾ������Ӥ��Ԥʤ��ޤ������䤤��碌�ιԤ���������Τ����Ĥ��ä���硢IN �η�̤Ͽ��Ȥʤ�ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)�������Ԥ����Ĥ���ʤ���硢��̤ϵ��Ǥ���

���Ĥ���̤ꡢ���ޤ������䤤��碌�ιԤˤ��� NULL �� SQL �����������̾�롼��Ƿ�礵��ޤ�����ĤιԤ��б����뤹�٤Ƥι������Ǥ��� NULL �dz������������������ȸ��蘆�졢��ĤǤ⹽�����Ǥ��� NULL �Ǥ��äơ����������ʤ���Ʊ�Τ������ȸ��蘆��ޤ�������ʳ����ιԤ���ӷ�̤�̤�� (NULL) �Ǥ������ʤ��Ȥ��Ĥ� NULL �����뤹�٤ƤιԤη�̤������⤷���� NULL �ξ�硢 IN �η�̤� NULL �Ȥʤ�ޤ���

NOT IN (scalar form)

expression NOT IN (value[, ...])

NOT IN �Τ��η����α�¦�ϴݳ�̤dz��줿�����顼���Υꥹ�ȤǤ�����¦�μ��η�̤����٤Ƥα�¦�μ����������ʤ�����̤Ͽ��Ǥ�������ϼ���ɽ��ˡ�δ�ά���Ǥ���

expression <> value1
AND
expression <> value2
AND
...

��¦�μ��� NULL ���������硢�ޤ��ϱ�¦���ͤ���������Τ�̵���ƾ��ʤ��Ȥ��Ĥα�¦�μ��� NULL �򻺤ߤ�����硢NOT IN ��ʸ�η�̤Ͽ��ȤϤʤ�ʤ��ǡ�NULL �ˤʤ�ޤ�������� NULL �ͤ�����Ū���ȹ礻���Ф��� SQL ���̾�μ����˽�����ΤǤ���

Tip: ���٤Ƥξ��˱����� x NOT IN y �� NOT (x IN y) �������Ǥ����Ȥϸ��äƤ⡢NULL �� IN ��Ȥ������� NOT IN ��Ȥ����������鿴�Ԥ��Ф��ƴְ㤤���Ȥ������ǽ�������⤤�褦�Ǥ�����ǽ�Ǥ���о������Τ�ɽ�����뤳�Ȥ����ɤǤ���

NOT IN (subquery form)

expression NOT IN (subquery)

NOT IN �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ����Τ� 1 ����֤��ʤ���Фʤ�ޤ��󡣺�¦�μ������䤤��碌�η�̤Τ��줾��ιԤ���ӡ�ɾ������ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)���䤤��碌�ιԤ�������Τ����Ĥ��ä����Τߡ�NOT IN �η�̤Ͽ��Ȥʤ�ޤ����������Ԥ����Ĥ���ʤ���硢��̤ϵ��Ǥ���

��¦�μ��� NULL ���������硢�ޤ��ϱ�¦���ͤ���������Τ�̵���ƾ��ʤ��Ȥ��Ĥα�¦�μ��� NULL �򻺤ߤ�����硢NOT IN ��ʸ�η�̤Ͽ��ȤϤʤ餺 NULL �ˤʤ�ޤ�������� NULL �ͤ�����Ū���ȹ礻���Ф��� SQL ���̾�μ����˽�����ΤǤ���

EXISTS ��Ʊ���褦�����䤤��碌���Ǹ�ޤ�ɾ�������Ȼפ�����Τϸ�������ޤ���

(expression, expression[, ...]) NOT IN (subquery)

NOT IN �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ���¦�Υꥹ�Ȥˤ��뼰�ο������Τ�Ʊ����������֤��ʤ���Фʤ�ޤ��󡣺�¦�μ������䤤��碌�η�̤Τ��줾��ιԤ��Ф����Ԥ˴ؤ���ɾ������Ӥ��Ԥʤ��ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)���䤤��碌�ιԤ������Τ�Τ����Ĥ��ä���硢NOT IN �η�̤Ͽ��Ȥʤ�ޤ����������Ԥ����Ĥ���ʤ���硢��̤ϵ��Ǥ���

���Ĥ���̤ꡢ���ޤ������䤤��碌�ιԤˤ��� NULL �� SQL �����������̾�롼��Ƿ�礵��ޤ�����ĤιԤ��б����뤹�٤Ƥι������Ǥ��� NULL �dz������������������ȸ��蘆�졢��ĤǤ⹽�����Ǥ��� NULL �Ǥ��äơ����������ʤ���Ʊ�Τ������ȸ��蘆��ޤ�������ʳ����ιԤ���ӷ�̤�̤�� (NULL) �Ǥ������ʤ��Ȥ��Ĥ� NULL �����뤹�٤ƤιԤη�̤������⤷���� NULL �ξ�硢 NOT IN �η�̤� NULL �Ȥʤ�ޤ���

ANY

expression operator ANY (subquery)
expression operator SOME (subquery)

ANY �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ����Τ� 1 ����֤��ʤ���Фʤ�ޤ��󡣺�¦�μ���Ϳ����줿�黻�� ����Ѥ������䤤��碌�η�̤Τ��줾��ιԤ���ӡ�ɾ�����졢�������η�̤��������ʤ��ƤϤʤ�ޤ��󡣿��η�̤������Ƥ���� ANY �η�̤Ͽ��Ȥʤ�ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)���η�̤����Ĥ���ʤ����ϵ��Ȥʤ�ޤ���

SOME ��ANY���Ф���Ʊ����Ǥ��� IN �� = ANY �������Ǥ���

���������Τ����ʤ��Ȥ��Ĥα�¦�ιԤ��黻�Ҥη�̤Ȥ��� NULL ���������ʤ��ä���硢 ANY ��ʸ�η�̤ϵ��ǤϤʤ����Ȥʤ�ޤ�������� NULL �ͤ�����Ū���ȹ礻���Ф��� SQL ���̾�μ����˽�����ΤǤ���

EXISTS ��Ʊ���褦�����䤤��碌���Ǹ�ޤ�ɾ�������Ȼפ�����Τϸ�������ޤ���

(expression, expression[, ...]) operator ANY (subquery)
(expression, expression[, ...]) operator SOME (subquery)

ANY �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ���¦�Υꥹ�Ȥˤ��뼰�ο������Τ�Ʊ����������֤��ʤ���Фʤ�ޤ��󡣺�¦�μ������䤤��碌�η�̤Τ��줾��ιԤ��Ф���Ϳ����줿 �黻������Ѥ��ƹԤ˴ؤ���ɾ������Ӥ��Ԥʤ��ޤ����������Ǥϡ��Ԥ��Ф��� ANY �䤤��碌�� = �� <> �Τ�ǧ����Ƥ��ޤ������줾�����ͤ⤷���������ιԤ����Ĥ���� ANY �η�̤Ͽ��Ȥʤ�ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)�������Ԥ����Ĥ���ʤ���硢��̤ϵ��Ǥ���

���Ĥ���̤ꡢ���ޤ������䤤��碌�ιԤˤ��� NULL �� SQL �����������̾�롼��Ƿ�礵��ޤ�����ĤιԤ��б����뤹�٤Ƥι������Ǥ��� NULL �dz������������������ȸ��蘆�졢��ĤǤ⹽�����Ǥ��� NULL �Ǥ��äơ����������ʤ���Ʊ�Τ������ȸ��蘆��ޤ�������ʳ����ιԤ���ӷ�̤�̤�� (NULL) �Ǥ������ʤ��Ȥ��Ĥ� NULL �ԤȤʤä���̤�¸�ߤ���� ANY �η�̤ϵ��Ȥʤ����ʤ��ǡ����⤷���� NULL �Ȥʤ�ޤ���

ALL

expression operator ALL (subquery)

ALL �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ����Τ˰�Ĥ�����֤��ʤ���Фʤ�ޤ��󡣺�¦�μ��ϡ�Ϳ����줿 �黻����ȤäƤ����䤤��碌�η�̤�ɾ������Ӥ��Ԥʤ�졢�����ͤη�̤��������ʤ��ƤϤʤ�ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)���٤ƤιԤ������֤��ΤǤ���� ALL �η�̤Ͽ��Ȥʤ�ޤ������η�̤�¾��ǧ����ʤ����Ϸ�̤ϵ��Ǥ���

NOT IN �� <> ALL��Ʊ�ͤǤ���

���꤬�����ʤ��Ƥ⡢���ʤ��Ƥ��Ĥα�¦�ιԤ��黻�Ҥη�̤��Ф��� NULL ���֤����ϡ�ALL ��ʸ�η�̤Ͽ��ǤϤʤ� NULL �Ȥʤ�ޤ���

EXISTS ��Ʊ���褦�����䤤��碌���Ǹ�ޤ�ɾ�������Ȼפ�����Τϸ�������ޤ���

(expression, expression[, ...]) operator ALL (subquery)

ALL �Τ��η����α�¦�ϴݳ�̤dz��줿���䤤��碌�ǡ���¦�Υꥹ�Ȥˤ��뼰�ο������Τ�Ʊ����������֤��ʤ���Фʤ�ޤ��󡣺�¦�μ������䤤��碌�η�̤Τ��줾��ιԤ��Ф���Ϳ����줿 �黻������Ѥ��ƹԤ˴ؤ���ɾ������Ӥ��Ԥʤ��ޤ����������Ǥϡ��Ԥ��Ф��� ALL �䤤��碌�� = �� <> �Τ�ǧ����Ƥ��ޤ���(���䤤��碌���Ԥ��֤��ʤ����̤ξ���ޤ�)���٤Ƥ����䤤��碌�Ԥ����줾�����������ޤ����������Ǥ���� ALL �η�̤Ͽ��Ȥʤ�ޤ����ɤιԤ⤽�줾���������ޤ��������Ȥʤ�ʤ���硢��̤ϵ��Ȥʤ�ޤ���

���Ĥ���̤ꡢ���ޤ������䤤��碌�ιԤˤ��� NULL �� SQL �����������̾�롼��Ƿ�礵��ޤ�����ĤιԤ��б����뤹�٤Ƥι������Ǥ��� NULL �dz������������������ȸ��蘆�졢��ĤǤ⹽�����Ǥ��� NULL �Ǥ��äơ����������ʤ���Ʊ�Τ������ȸ��蘆��ޤ�������ʳ����ιԤ���ӷ�̤�̤�� (NULL) �Ǥ������ʤ��Ȥ��Ĥ� NULL �ԤȤʤä���̤�¸�ߤ���� ALL �η�̤Ͽ��Ȥʤ����������⤷���� NULL �Ȥʤ�ޤ���

�Ԥ˴ؤ��Ƥ����

(expression, expression[, ...]) operator (subquery)
(expression, expression[, ...]) operator (expression, expression[, ...])

��¦�ϥ����顼���Υꥹ�ȤǤ�����¦��Ʊ��Ĺ���Υ����顼���Υꥹ�ȡ��ޤ��ϴݳ�̤dz��줿���䤤��碌�ǡ���¦�μ��Ȥޤä���Ʊ����������֤��ʤ���Фʤ�ޤ��󡣤���ˡ����䤤��碌�ϰ�԰ʾ��֤����ȤϤǤ��ޤ���(�Ԥ�ޤä����֤��ʤ���硢��̤� NULL �ȸ��蘆��ޤ���)��¦�μ������䤤��碌�η�̤�ñ������䤤��碌�Ԥޤ��ϱ�¦�μ��ꥹ�Ȥ��Ф�ɾ������Ӥ��Ԥʤ��ޤ����������Ǥϡ��Ԥ��Ф�����Ӥˤ����� = �� <> �Τ�ǧ����Ƥ��ޤ����ɤιԤ⤽�줾���������ޤ��������Ȥʤ�ʤ���硢��̤Ͽ��Ȥʤ�ޤ���

���Ĥ���̤ꡢ���ޤ������䤤��碌�ιԤˤ��� NULL �� SQL �����������̾�롼��Ƿ�礵��ޤ�����ĤιԤ��б����뤹�٤Ƥι������Ǥ��� NULL �dz������������������ȸ��蘆�졢��ĤǤ⹽�����Ǥ��� NULL �Ǥ��äơ����������ʤ���Ʊ�Τ������ȸ��蘆��ޤ�������ʳ����ιԤ���ӷ�̤�̤�� (NULL) �Ǥ���