¾�ΥС�������ʸ�� �� 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

11.3. ����Ū�� JOIN �ǥץ��ʤ����椹��

PostgreSQL 7.1 ��������Ū�� JOIN ��ʸ��Ȥä��䤤��碌�ץ��ʤ򤢤���������Ǥ���褦�ˤʤ�ޤ������ɤ����Ƥ����������Ȥ�����ˤʤ�Τ����ޤ������طʤ򸫤�ɬ�פ�����ޤ���

ñ����䤤��碌�����Ȥ���

SELECT * FROM a,b,c WHERE a.id = b.id AND b.ref = c.id;

�Ǥϡ��ץ��ʤϼ�ͳ��Ϳ����줿�ơ��֥�򤤤���ʽ�Ƿ�礹�뤳�Ȥ��Ǥ��ޤ������Ȥ��С�WHERE ��� a.id = b.id ��ȤäƤޤ� A �� B ���礷��¾�� WHERE ���ȤäƤ��η�̤�C���礹��Ȥ��ä��ײ��Ω�Ƥ뤳�Ȥ��Ǥ��ޤ������뤤�ϡ�B �� C ���礷�����η�̤� A ���礹�뤳�Ȥ�Ǥ��ޤ������뤤�ϡ�A �� C ���礷�����η�̤� B ���礹�뤳�Ȥ�Ǥ���Ǥ��礦��������������Ǥϸ�Ψ���褯����ޤ��󡣤ʤ��ʤ顢WHERE ���ȤäƷ��κ�Ŭ����Ԥ�;�Ϥ��ʤ������ A �� C ����ľ�Ѥ�����뤫��Ǥ�����PostgreSQL �Υ����奼���塼���Ǥϡ����Ϥ��٤� 2 �ĤΥơ��֥�δ֤ǹԤ��뤿�ᡢ���Τ褦�ˤ��ƤҤȤĤҤȤķ�̤��äƤ����ʤ���Фʤ�ޤ��󡣡˽��פʤΤϡ������ΰ�ä�������ˡ�ϰ�̣Ū�ˤϷ�̤Ȥ���Ʊ���ʤΤǤ������¹ԥ����Ȥ��礭���㤦�Ȥ������ȤǤ����Ǥ����顢�ץ��ʤϤ�äȤ��Ψ���ɤ��ץ���õ������˲�ǽ�ʥץ��򤹤٤Ƹ������ޤ���

�����оݤ��������� 2��3 �ĤΥơ��֥�ʤ鿴�ۤ���ۤɷ��μ����¿������ޤ��󡣤��������ơ��֥�ο���������Ȳ�ǽ�ʷ��ο��ϻؿ��ؿ�Ū�������Ƥ����ޤ���10 ���ٰʾ�˥ơ��֥뤬������ȡ����٤Ƥβ�ǽ���򤷤�ߤĤ֤���õ�����뤳�ȤϤ�Ϥ����Ū�ǤϤʤ��ʤ�ޤ���6 �� 7 �ĤΥơ��֥�Ǥ����⡢�ײ�����������֤�̵��Ǥ��ʤ��ʤ�ޤ����ơ��֥�ο���¿������Ȥ��ϡ�PostgreSQL �Υץ��ʤϤ���ߤĤ֤���õ�����顢�¤�줿��ǽ��������õ������ ����Ū��ΨŪ��õ���ؤ��ڤ��ؤ��ޤ�.�����ؤ������ͤ������ԥ������˵��Ҥ���Ƥ��� GEQO_THRESHOLD �¹Ի��ѥ�᡼�������ꤵ��ޤ��ˡ�����Ūõ����û�����֤�õ����Ԥ��ޤ�����ɬ�������Ŭ�ʥץ��򸫤Ĥ���Ȥϸ¤�ޤ���

������礬�ޤޤ��褦���䤤��碌�Ǥϡ��ץ��ʤˤ��̾��(����)�����⤺�ä������;�Ϥ��������ʤ�ޤ������Ȥ��С����Τ褦���䤤��碌��ͤ��ޤ���

SELECT * FROM a LEFT JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id);

�����䤤��碌�θ����������Ҥ����ɽ��Ū�ˤϻ��Ƥ���褦�˻פ��ޤ�����B �� C �η���̤ιԤ�Ŭ�礷�ʤ� A �γƹԤ����Ϥ���ʤ���Фʤ�ʤ����ᡢ��̣Ū�ˤϰۤʤ�ޤ����������äơ������Ǥϥץ��ʤˤϷ���˴ؤ��������;�Ϥ�����ޤ��󡣤ޤ� B �� C ���礷�����η�̤� A ���礷�ʤ���Фʤ�ʤ��ΤǤ������������櫓�ǡ������䤤��碌�ǤϷײ��Ω�Ƥ�Τ��פ�����֤����������û���ʤ�ޤ���

PostgreSQL 7.1 �Ǥϡ�����Ū�ˤ��������˴ؤ��Ƥ�������ߤ���ɬ�פ��ʤ��ˤ�ؤ�餺���ץ��ʤϤ��٤Ƥ�����Ū�ʷ��Ƿ��礬���󤵤���Τȸ��ʤ��ޤ����������äơ��ʲ��Τ��٤Ƥ��䤤��碌�ϡ�Ʊ����̤�Ϳ����Τˤ⤫����餺��2 ���ܤ� 3 ���ܤ��䤤��碌�Ϻǽ�Τ�Τ���û�����֤Ƿײ��Ω�Ƥޤ���

SELECT * FROM a,b,c WHERE a.id = b.id AND b.ref = c.id;
SELECT * FROM a CROSS JOIN b CROSS JOIN c WHERE a.id = b.id AND b.ref = c.id;
SELECT * FROM a JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id);

���θ��̤Ϥ��ä� 3 �ĤΥơ��֥�Ǥϵ��ˤ���ۤɤΤ�ΤǤϤ���ޤ��󤬡�¿���Υơ��֥���礹��ݤˤϺǸ����ߤιˤˤʤ뤫�⤷��ޤ���

�������֤����󤹤뤿��ˡ����������«������ɬ�פϤ���ޤ��󡣤ʤ��ʤ顢ñ��� FROM �ꥹ�Ȥη��黻��ȤäƤ⹽��ʤ�����Ǥ������Ȥ��С�

SELECT * FROM a CROSS JOIN b, c, d, e WHERE ...;

�Ǥϥץ��ʤ�¾�Υơ��֥�ȷ�礹������ A �� B ���礷�ޤ���������ʳ��ˤĤ��Ƥ��ä˹�«�Ϥ���ޤ��󡣤�����Ǥϡ�����θ���� 5 �γ���ʬ�� 1 �˸���ޤ���

����������������ޤ�ʣ�����䤤��碌�Ǥϡ��������������Ǽ¹Ԥ�������������ɤ������ץ��õ������Τ�˸�����ʤ������ɤ����⤷��ޤ���JOIN ��ʸ��ľ�ܤ��Τ褦�˻��ꤹ�뤳�Ȥ�Ǥ��ޤ��������䤤��碌��Ȥäƹ�ʸŪ���������򤹤뤳�Ȥ�Ǥ��ޤ������Ȥ��С�������Ǥ���

SELECT * FROM d LEFT JOIN
        (SELECT * FROM a, b, c WHERE ...) AS ss
        ON (...);

�����Ǥϡ�D�η����䤤��碌�ץ�����ǤϺǽ��ʳ��ˤʤ���Фʤ�ʤ���ΤΡ�A��B��C �η���˴ؤ��Ƥϥץ��ʤϼ�ͳ�˹ͤ��뤳�Ȥ��Ǥ��ޤ���

���Τ褦�ˤ��ƥץ��ʤ�õ�������󤹤�Τϡ��ײ��Ω�Ƥ���֤����󤹤�Τߤʤ餺���ץ��ʤ��ɤ��䤤��碌�ײ��Ω�Ƥ�褦�˻Ÿ����뤿��ˤ���Ω�ĥƥ��˥å��Ǥ����⤷���ΤޤޤǤϥץ��ʤ��ɤ��ʤ���������򤹤�褦�ʤ顢JOIN ��ʸ��Ȥäƥץ��ʤ�����ɤ���������֤褦�˶������뤳�Ȥ��Ǥ��ޤ������ʤ���������ɤ�������ΤäƤ���Ȥ��Ƥ��äǤ������¸����Ƥߤ뤳�Ȥ򤪴��ᤷ�ޤ���