{"id":5609,"date":"2018-08-16T15:58:14","date_gmt":"2018-08-16T22:58:14","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5609"},"modified":"2018-08-17T15:17:49","modified_gmt":"2018-08-17T22:17:49","slug":"testing-ansi-joins","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/testing-ansi-joins\/","title":{"rendered":"ANSI \uc870\uc778 \ud14c\uc2a4\ud2b8"},"content":{"rendered":"<h3><span style=\"font-weight: 400\">\uac1c\uc694<\/span><\/h3>\n<p><span style=\"font-weight: 400\">\uc774 \ubb38\uc11c\uc758 \uc8fc\ub41c \ubaa9\uc801\uc740 Couchbase ANSI \uc870\uc778\uc744 \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9ac\ub294 \uac83\uc785\ub2c8\ub2e4. In <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/announcing-couchbase-server-5-5\/\"><span style=\"font-weight: 400\">Couchbase \ubc84\uc804 5.5<\/span><\/a><span style=\"font-weight: 400\">\ub97c \uc0ac\uc6a9\ud558\uba74 \uc774\uc81c ANSI \ud45c\uc900 \uad6c\ubb38\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc870\uc778\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \uc870\uc778\uc744 \ucd94\uac00\ud558\uba74 \ud6e8\uc52c \ub354 \uc720\uc5f0\ud574\uc9c0\uc9c0\ub9cc \ud6e8\uc52c \ub354 \ubcf5\uc7a1\ud574\uc9d1\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubcf5\uc7a1\uc131 \ub54c\ubb38\uc5d0 \uc77c\ubc18\uc801\uc778 \ud504\ub808\uc784\uc6cc\ud06c\uc5d0\uc11c\ub294 \ud14c\uc2a4\ud2b8\ud558\uae30\uac00 \uc5b4\ub824\uc6b0\uba70, \uc790\ub3d9\ud654\ub97c \uc704\ud574 \uc218\ub3d9\uc73c\ub85c \uc791\uc131\ud558\uae30\uc5d0\ub294 \ub108\ubb34 \ub9ce\uc740 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\ud589\ud788\ub3c4 \ud14c\uc2a4\ud2b8 \ud504\ub808\uc784\uc6cc\ud06c \uc911 \ud558\ub098\ub97c \uc0ac\uc6a9\ud558\uba74 \ucffc\ub9ac\uc758 \ub9e4\uac1c\ubcc0\uc218\ub97c \uc124\uc815\ud55c \ub2e4\uc74c \ud574\ub2f9 \ub9e4\uac1c\ubcc0\uc218\ub97c \uae30\ubc18\uc73c\ub85c \uc784\uc758\uc758 \ucffc\ub9ac \uc9d1\ud569\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud504\ub808\uc784\uc6cc\ud06c\ub294 <\/span><b>\ubb34\uc791\uc704 \ucffc\ub9ac \uc0dd\uc131\uae30(RQG)<\/b><span style=\"font-weight: 400\">. \uc774 \ubb38\uc11c\uc5d0\uc11c\ub294 \uad6c\ud604\ub41c ANSI JOIN \uae30\ub2a5\uc744 \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud574 RQG\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4. \uba3c\uc800 ANSI JOIN\uc758 \ucc28\uc774\uc810\uc5d0 \ub300\ud574 \uac04\ub7b5\ud558\uac8c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc774 \uae00\uc5d0\uc11c\ub294 \ub2e4\uc74c \uc8fc\uc81c\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4:<\/span><\/p>\n<p style=\"padding-left: 30px\"><strong>1. ANSI \uc870\uc778 \uc18c\uac1c <\/strong><\/p>\n<p style=\"padding-left: 30px\"><strong>2. \ub79c\ub364 \ucffc\ub9ac \uc0dd\uc131\uae30(RQG) \uac1c\uc694 <\/strong><\/p>\n<p style=\"padding-left: 30px\"><strong>3. RQG\ub97c \uc0ac\uc6a9\ud558\uc5ec ANSI \uc870\uc778 \ud14c\uc2a4\ud2b8\ud558\uae30 <\/strong><\/p>\n<p style=\"padding-left: 30px\"><strong>4. \ud575\uc2ec \ud3ec\uc778\ud2b8<\/strong><\/p>\n<p style=\"padding-left: 30px\"><strong>5. \ubc1c\uacac\ub41c \ucd94\uac00 ANSI JOIN \ubc84\uadf8 \ubaa9\ub85d<\/strong><\/p>\n<p style=\"padding-left: 30px\"><strong>6. \ubd80\ub85d<\/strong><\/p>\n<h3><span style=\"font-weight: 400\">ANSI \uc870\uc778 \uc18c\uac1c <\/span><\/h3>\n<p><span style=\"font-weight: 400\">\uc774\uc804\uc5d0\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \uc870\ud68c \uc870\uc778\ub9cc \uc2e4\ud589\ud560 \uc218 \uc788\uc5c8\uace0 <\/span><a href=\"https:\/\/dzone.com\/articles\/join-faster-with-couchbase-index-joins\"><span style=\"font-weight: 400\">\uc778\ub371\uc2a4 \uc870\uc778<\/span><\/a><span style=\"font-weight: 400\">. \uc774\uac83\uc740 \uc870\uc778\uc758 \ud55c \ucabd\uc5d0\uc11c \ub2e4\ub978 \ucabd\uc758 \ubb38\uc11c \ud0a4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub294 \ucffc\ub9ac\uc5d0 \uc720\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ud0a4 \uc2a4\ud398\uc774\uc2a4\uc758 \ub2e4\ub978 \ud544\ub4dc\uc5d0\uc11c\ub294 \uc870\uc778\uc744 \uc2e4\ud589\ud560 \uc218 \uc5c6\ub2e4\ub294 \ubb38\uc81c\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. ANSI \uc870\uc778\uc740 \uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uace0 \ud55c \ub2e8\uacc4 \ub354 \ub098\uc544\uac00 \uc774\uc81c \uc784\uc758\uc758 \ud544\ub4dc \ub610\ub294 \ud544\ub4dc\ub97c \uc0dd\uc131\ud558\ub294 \ud45c\ud604\uc2dd \ub610\ub294 \uc5ec\ub7ec \uc870\uc778 \uc870\uac74\uc5d0 \ub300\ud574 \uc870\uc778\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><b>\uc774\uc804 \uc870\uc778 \uad6c\ubb38:<\/b><\/p>\n<p style=\"text-align: center\"><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400\">Lhs-\ud0a4\uc2a4\ud398\uc774\uc2a4 [\uc870\uc778 \uc720\ud615] JOIN rhs-\ud0a4\uc2a4\ud398\uc774\uc2a4<\/span><\/p>\n<p style=\"text-align: center\"><span style=\"font-weight: 400\">ON KEYS [\ud0a4 \uacf5\uac04 \uc911 \ud558\ub098\uc758 \uba54\ud0c0().id\ub97c \uc0dd\uc131\ud558\ub294 \ud45c\ud604\uc2dd]<\/span><\/p>\n<p><b>ANSI JOIN \uad6c\ubb38:<\/b><\/p>\n<p style=\"text-align: center\"><span style=\"font-weight: 400\">lhs-expression [\uc870\uc778 \uc720\ud615] JOIN rhs-\ud0a4 \uc2a4\ud398\uc774\uc2a4 ON [\uc870\uc778 \uc870\uac74]<\/span><\/p>\n<p><b>\uc774\uc804 \uc870\uc778 \uad6c\ubb38 \ucffc\ub9ac:<\/b><\/p>\n<pre class=\"wrap:true lang:default decode:true\">SELECT t_3.decimal_field1 , t_3.primary_key_id , t_3.varchar_field1 , t_3.char_field1 \r\nFROM multiple_table_db_87317526_simple_table_4 t_2 \r\nLEFT JOIN multiple_table_db_87317526_simple_table_1 t_3 \r\nON KEYS [ t_2.primary_key_id ]\r\nWHERE (t_2.bool_field1 != true AND t_3.decimal_field1 &lt;= 4980)<\/pre>\n<p><b>ANSI JOIN \uad6c\ubb38\uc744 \uc0ac\uc6a9\ud55c \ub3d9\uc77c\ud55c \ucffc\ub9ac:<\/b><\/p>\n<pre class=\"wrap:true lang:default decode:true\">SELECT t_3.decimal_field1 , t_3.primary_key_id , t_3.varchar_field1 , t_3.char_field1\r\nFROM multiple_table_db_87317526_simple_table_4 t_2 \r\nLEFT JOIN multiple_table_db_87317526_simple_table_1 t_3 \r\nON t_2.primary_key_id = t_3.primary_key_id\r\nWHERE (t_2.bool_field1 != true AND t_3.decimal_field1 &lt;= 4980)<\/pre>\n<p><span style=\"font-weight: 400\">N1QL\uc5d0\uc11c \uc9c0\uc6d0\ub418\ub294 \uc870\uc778 \uc720\ud615\uc740 INNER JOIN \ub610\ub294 LEFT\/RIGHT OUTER JOIN\uc785\ub2c8\ub2e4. \ub2e8\uc21c\ud788 JOIN\uc744 \uc785\ub825\ud558\uba74 INNER JOIN\uc73c\ub85c \ud574\uc11d\ub418\uace0, LEFT\/RIGHT JOIN\uc740 OUTER JOIN\uc73c\ub85c \ud574\uc11d\ub429\ub2c8\ub2e4. \uc0c8 \uc870\uc778 \uad6c\ubb38\uc5d0\uc11c \uc870\uc778\uc758 \uc67c\ucabd\uc740 \ud0a4 \uc2a4\ud398\uc774\uc2a4, \uc911\ucca9\ub41c n1ql \ucffc\ub9ac, n1ql \uc2dd \ub610\ub294 \uc870\uc778 \uc790\uccb4\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc870\uc778\uc758 \uc624\ub978\ucabd\uc740 \ud604\uc7ac Couchbase \ub0b4\ubd80\uc758 ANSI JOIN \uad6c\ud604\uc5d0\uc11c \ud0a4 \uc2a4\ud398\uc774\uc2a4\uc5ec\uc57c \ud569\ub2c8\ub2e4. ON \uc808\uc5d0\ub294 \uc870\uc778\uc774 \ucda9\uc871\ud574\uc57c \ud558\ub294 \uc870\uac74\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc73c\uba70, \uc774\ub7ec\ud55c \uc870\uac74\uc740 \uc624\ub978\ucabd \ud0a4 \uacf5\uac04\uc5d0 \uc801\uc808\ud55c \uc778\ub371\uc2a4\uac00 \uc788\ub294 \ud55c \ubaa8\ub4e0 \uc220\uc5b4 \uc2dd\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ub3d9\ub4f1 \ube44\uad50 \ubc0f \ube44\ub3d9\ub4f1 \ube44\uad50(b1.field = b2.field \ub610\ub294 b1.field\/=\/!=\/b2.field \ub610\ub294 b2.field\uac00 NOT NULL \ub610\ub294 \ubcf5\ud569 \uc2dd = b2.field) \uc774\uac83\uc740 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc5d0 \ub300\ud574 \uac04\ub7b5\ud558\uac8c \uc0b4\ud3b4\ubcf8 \uac83\uc774\uba70, \uae30\ub2a5\uc5d0 \ub300\ud574 \ub354 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\ub824\uba74 \uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c(\uae30\ub2a5\uc744 \uad6c\ud604\ud55c \uac1c\ubc1c\uc790 Bingjie Miao\uac00 \uc791\uc131\ud55c)\uc744 \ud655\uc778\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4:<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/ansi-join-support-n1ql\/\"> <span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/ansi-join-support-n1ql\/<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400\">\uc774\uc81c ANSI \uc870\uc778\uc740 \uc774\uc804 \uc870\uc778\uacfc \ube44\uad50\ud558\uc5ec \uc81c\ud55c\uc774 \uac70\uc758 \uc5c6\ub2e4\ub294 \uac83\uc744 \uc774\ud574\ud558\uae30 \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4. ANSI \uc870\uc778\uc758 \uc67c\ucabd\uc740 \ub9e4\uc6b0 \ubcf5\uc7a1\ud560 \uc218 \uc788\uc73c\uba70, \uc870\uc778 \uc790\uccb4\uac00 \uc5ec\ub7ec \uac1c\uc77c \uc218\ub3c4 \uc788\uace0, \uc77c\ubd80 json \ub370\uc774\ud130\ub97c \uac00\uc838\uc624\ub294 \uc911\ucca9 \ucffc\ub9ac\uc77c \uc218\ub3c4 \uc788\uace0, \uc5ec\ub7ec \uac1c\uc758 \uc911\ucca9 \ucffc\ub9ac\uc77c \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc218\uc900\uc758 \ubcf5\uc7a1\uc131 \ub54c\ubb38\uc5d0 \uac1c\ubcc4 \ucffc\ub9ac\ub97c \ub9cc\ub4e4\uc5b4 \ud14c\uc2a4\ud2b8\ud558\ub294 \uac83\ubcf4\ub2e4 RQG\ub77c\uace0 \ud558\ub294 \uac83\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc740 RQG\uc758 \uc791\ub3d9 \ubc29\uc2dd\uc5d0 \ub300\ud55c \uac04\ub7b5\ud55c \uac1c\uc694\uc785\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">\ub79c\ub364 \ucffc\ub9ac \uc0dd\uc131\uae30(RQG) \uac1c\uc694<\/span><\/h3>\n<p><span style=\"font-weight: 400\">RQG\ub294 Couchbase\uc5d0\uc11c \uc791\uc131\ud55c \ud504\ub808\uc784\uc6cc\ud06c\ub85c, \ub2e4\uc74c\uacfc \uac19\uc740 \ub2e4\ub978 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \ud65c\uc6a9\ud569\ub2c8\ub2e4. <\/span><a href=\"https:\/\/launchpad.net\/randgen\"><span style=\"font-weight: 400\">Randgen<\/span><\/a><span style=\"font-weight: 400\">. \uae30\ubcf8\uc801\uc73c\ub85c \uc6b0\ub9ac\ub294 \ubb38\ubc95\uc774\ub77c\ub294 \ud30c\uc77c\uc5d0 \ub9e4\uac1c\ubcc0\uc218 \uc9d1\ud569\uc744 \uc9c0\uc815\ud558\uace0, \uc774\ub7ec\ud55c \ub9e4\uac1c\ubcc0\uc218\ub85c\ubd80\ud130 Randgen\uc774 SQL \ucffc\ub9ac \ud15c\ud50c\ub9bf(\ud544\ub4dc \uc774\ub984\uacfc \ud14c\uc774\ube14 \uc774\ub984\uc5d0 \ub300\ud55c \uc790\ub9ac \ud45c\uc2dc\uc790\uac00 \uc788\ub294 \ucffc\ub9ac)\uc744 \uc0dd\uc131\ud55c \ub2e4\uc74c, \ud504\ub808\uc784\uc6cc\ud06c\uac00 \uc774\ub7ec\ud55c \ud15c\ud50c\ub9bf\uc744 \ucc98\ub9ac\ud558\uc5ec \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \ub85c\ub4dc\ub41c \ub370\uc774\ud130 \uc9d1\ud569\uc744 \uae30\ubc18\uc73c\ub85c N1QL \ud615\uc2dd\uc758 \ucffc\ub9ac\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><strong>\ucffc\ub9ac \ud15c\ud50c\ub9bf \uc608\uc2dc:<\/strong><\/p>\n<pre class=\"wrap:true lang:default decode:true\">SELECT NUMERIC_FIELD_LIST \r\nFROM BUCKET_NAME \r\nINNER JOIN BUCKET_NAME \r\nON ( PREVIOUS_TABLE.FIELD = CURRENT_TABLE.FIELD ) \r\nWHERE NOT (BOOL_FIELD != false);<\/pre>\n<p><span style=\"font-weight: 400\">\uc774 \ud15c\ud50c\ub9bf\uc740 \ub9e4\uac1c \ubcc0\uc218\uac00 \ud3ec\ud568\ub41c \ubb38\ubc95 \ud30c\uc77c\uc5d0\uc11c \uc0dd\uc131\ub418\uba70, \uae30\ubcf8\uc801\uc73c\ub85c \ubb38\ubc95 \ud30c\uc77c\uc740 \ub3d9\ub4f1 \ube44\uad50\uc5d0 \ub300\ud55c \uc784\uc758\uc758 \ub450 \ubc84\ud0b7\uc758 \uc870\uc778\uc5d0\uc11c \uc22b\uc790 \uc720\ud615\uc758 \ub370\uc774\ud130 \ubaa9\ub85d\uc744 \uc120\ud0dd\ud558\ub294 \ucffc\ub9ac\ub97c \uc0dd\uc131\ud558\ub3c4\ub85d randgen\uc5d0 \uc9c0\uc2dc\ud569\ub2c8\ub2e4. \uc774 \ubb38\ubc95\uc5d0\ub294 \uc120\ud0dd\ud560 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \uc720\ud615\uc758 \ud544\ub4dc\uc640 ON\/ WHERE \uc870\uac74\uc5d0 \uc2ac\ub86f\uc73c\ub85c \ub123\uc744 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \uc870\uc778 \uc870\uac74\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc704\uc640 \uac19\uc774 \ud15c\ud50c\ub9bf\uc774 \uc0dd\uc131\ub418\uba74, \ud504\ub808\uc784\uc6cc\ud06c\ub294 \uc774\ub7ec\ud55c \uc784\uc758\uc758 \uac12\uc744 \ub85c\ub4dc\ub41c \ub370\uc774\ud130\uc5d0 \uae30\ubc18\ud55c \uac12\uc73c\ub85c \ub300\uccb4\ud569\ub2c8\ub2e4. NUMERIC_FIELD_LIST\uc758 \uacbd\uc6b0, \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ud56d\ubaa9\uc5d0 \ub530\ub77c \uc815\uc218\/\ube45\uae34\ud2b8\/\ubd80\ub3d9 \uc18c\uc218\uc810\/\uc22b\uc790 \ub4f1\uc758 \ubaa9\ub85d\uc778 \ud544\ub4dc\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4. \ud504\ub808\uc784\uc6cc\ud06c\ub294 \uc11c\ubc84\uc5d0 \uc874\uc7ac\ud558\ub294 \ubc84\ud0b7\uc758 \ud2b9\uc815 \uc774\ub984\uc73c\ub85c BUCKET_NAME\uc744 \ub300\uccb4\ud569\ub2c8\ub2e4. \uc774\uc804_\ud14c\uc774\ube14.\ud544\ub4dc\ub294 \uccab \ubc88\uc9f8 \ubc84\ud0b7\uc758 \ud544\ub4dc\uac00 \ub418\uace0 \ud604\uc7ac_\ud14c\uc774\ube14.\ud544\ub4dc\ub294 \ub450 \ubc88\uc9f8 \ubc84\ud0b7\uc758 \ub3d9\uc77c\ud55c \ud544\ub4dc\uac00 \ub429\ub2c8\ub2e4. \uc774 \ubaa8\ub4e0 \uc791\uc5c5\uc774 \uc644\ub8cc\ub418\uba74 \ucffc\ub9ac\ub97c \uac80\ud1a0\ud558\uace0 N1QL\uacfc SQL \uac04\uc758 \ucc28\uc774\uc810\uc774 \uc815\ub9ac\ub41c \ucffc\ub9ac\uc758 \ubcf5\uc0ac\ubcf8\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc774\uc804 \uc870\uc778 \uad6c\ubb38\uc5d0\uc11c\ub294 ON\uc774\ub77c\ub294 \ud0a4\uc6cc\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc5c8\uae30 \ub54c\ubb38\uc5d0, \ub300\uc2e0 RQG\ub294 n1ql \ucffc\ub9ac\uc5d0 \ub300\ud574 ON\uc744 ON KEYS\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4. <\/span><\/p>\n<p><strong>\ubcc0\ud658\ub41c \ucffc\ub9ac \uc608\uc2dc:<\/strong><\/p>\n<pre class=\"wrap:true lang:default decode:true\">SELECT t_3.decimal_field1 , t_3.int_field1 \r\nFROM multiple_table_db_87317649_simple_table_4 t_2 \r\nINNER JOIN multiple_table_db_87317649_simple_table_1 t_3 \r\nON KEYS [ t_2.primary_key_id ] \r\nWHERE (t_2.bool_field1 != false)<\/pre>\n<p><span style=\"font-weight: 400\">\uadf8\ub7f0 \ub2e4\uc74c n1ql \ucffc\ub9ac\uc640 SQL \ucffc\ub9ac\ub97c \ubaa8\ub450 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\uc640 \ub3d9\ub4f1\ud55c MySQL \uc11c\ubc84\uc5d0 \ub300\ud574 \uc2e4\ud589\ud569\ub2c8\ub2e4. N1QL \ucffc\ub9ac\uc758 \uacb0\uacfc\ub294 \ub3d9\ub4f1\ud55c MySQL \ucffc\ub9ac\uc758 \uacb0\uacfc\uc640 \ube44\uad50\ub429\ub2c8\ub2e4. N1QL\uc774 \uae30\ub2a5\uc801\uc73c\ub85c SQL\uacfc \uc720\uc0ac\ud558\uae30\ub97c \uc6d0\ud558\uae30 \ub54c\ubb38\uc5d0 \uacb0\uacfc\uac00 MySQL \uacb0\uacfc\uc640 \uc77c\uce58\ud558\ub3c4\ub85d \ud558\ub294 \uac83\uc774 \ubaa9\ud45c\uc785\ub2c8\ub2e4. RQG\uac00 \uc5b4\ub5bb\uac8c \ubc30\uce58\ub418\ub294\uc9c0 \ub610\ub294 \ud15c\ud50c\ub9bf\uc744 \uc0dd\uc131\ud558\uc5ec n1ql\ub85c \ubcc0\ud658\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\ub824\uba74 5\ubd80\uc791\uc73c\ub85c \uad6c\uc131\ub41c RQG \uc2dc\ub9ac\uc988\ub97c \ucc38\uc870\ud558\uc138\uc694:<\/span><a href=\"https:\/\/dzone.com\/articles\/testing-n1ql-sql-for-json\"> <span style=\"font-weight: 400\">https:\/\/dzone.com\/articles\/testing-n1ql-sql-for-json<\/span><\/a><\/p>\n<h3><span style=\"font-weight: 400\">RQG\ub97c \uc0ac\uc6a9\ud558\uc5ec ANSI \uc870\uc778 \ud14c\uc2a4\ud2b8\ud558\uae30<\/span><\/h3>\n<p><span style=\"font-weight: 400\">RQG\ub97c \uc124\uc815\ud558\ub294 \ubc29\uc2dd\uc740 \uc6b0\ub9ac\uac00 \uc9c1\uc811 \uc0dd\uac01\ud558\uc9c0 \ubabb\ud588\ub358 \ub2e4\uc591\ud55c \ucffc\ub9ac\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4. \ub2e4\uc74c\uc740 RQG\ub85c \uc0dd\uc131\ub41c \ub9e4\uc6b0 \ubcf5\uc7a1\ud55c \ud15c\ud50c\ub9bf\uc785\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"right-set:true wrap:true lang:default decode:true\">SELECT NUMERIC_FIELD_LIST, STRING_FIELD_LIST \r\nFROM BUCKET_NAME \r\nINNER JOIN BUCKET_NAME \r\nON ( PREVIOUS_TABLE.FIELD = CURRENT_TABLE.FIELD ) \r\nWHERE (((((STRING_FIELD != STRING_VALUES AND (NUMERIC_FIELD BETWEEN LOWER_BOUND_VALUE and UPPER_BOUND_VALUE) OR (NUMERIC_FIELD BETWEEN LOWER_BOUND_VALUE and UPPER_BOUND_VALUE))) AND (NUMERIC_FIELD IS NOT NULL)) AND ((NOT (((BOOL_FIELD AND (NUMERIC_FIELD IS NULL) OR (NUMERIC_FIELD &gt;= NUMERIC_VALUE))) AND ((BOOL_FIELD != false AND NUMERIC_FIELD = NUMERIC_VALUE)) OR ((BOOL_FIELD != true AND NUMERIC_FIELD = NUMERIC_VALUE)) AND (NOT (BOOL_FIELD)))) AND (STRING_FIELD IS NULL))) AND (((BOOL_FIELD AND NUMERIC_FIELD != NUMERIC_VALUE)) AND ((BOOL_FIELD = true AND NUMERIC_FIELD IS NULL)))) OR (((NOT ((NUMERIC_FIELD &lt; NUMERIC_VALUE) AND ((BOOL_FIELD != false OR STRING_FIELD &lt; STRING_VALUES)))) AND (NOT (((STRING_FIELD IN ( LIST )) AND (STRING_FIELD LIKE STRING_VALUES) AND NUMERIC_FIELD IS NULL)))) OR (((BOOL_FIELD AND (NOT ((NUMERIC_FIELD = NUMERIC_VALUE) AND (NUMERIC_FIELD BETWEEN LOWER_BOUND_VALUE and UPPER_BOUND_VALUE))) OR (NUMERIC_FIELD &lt;= NUMERIC_VALUE))) OR (((NOT (((NOT ((BOOL_FIELD != true AND NUMERIC_FIELD &gt; NUMERIC_VALUE))) AND ((((BOOL_FIELD != false OR NUMERIC_FIELD != NUMERIC_VALUE)) AND ((BOOL_FIELD != true AND NUMERIC_FIELD BETWEEN LOWER_BOUND_VALUE and UPPER_BOUND_VALUE)) OR ((STRING_FIELD IS NOT NULL AND NUMERIC_FIELD &gt; NUMERIC_VALUE)) AND ((NUMERIC_FIELD &gt;= NUMERIC_VALUE AND STRING_FIELD = STRING_VALUES AND NOT (BOOL_FIELD)))) AND ((NOT (BOOL_FIELD) OR NUMERIC_FIELD IS NULL)))) AND (((NOT ((STRING_FIELD &gt;= STRING_VALUES AND NUMERIC_FIELD IS NULL))) OR (NOT ((((BOOL_FIELD AND NUMERIC_FIELD != NUMERIC_VALUE)) AND ((BOOL_FIELD != false OR NUMERIC_FIELD IS NULL))) AND (((STRING_FIELD IN ( LIST )) AND ((STRING_FIELD &lt;= STRING_VALUES AND NUMERIC_FIELD &lt;= NUMERIC_VALUE))) AND ((NUMERIC_FIELD BETWEEN LOWER_BOUND_VALUE and UPPER_BOUND_VALUE OR STRING_FIELD != STRING_VALUES)))))) OR ((STRING_FIELD &lt;= STRING_VALUES AND NUMERIC_FIELD &gt;= NUMERIC_VALUE))))) OR (NOT ((NOT ((BOOL_FIELD = false AND NUMERIC_FIELD IN ( LIST )))) OR (NOT ((BOOL_FIELD = true AND NUMERIC_FIELD &lt; NUMERIC_VALUE)))))) AND ((((BOOL_FIELD != true AND STRING_FIELD NOT BETWEEN LOWER_BOUND_VALUE and UPPER_BOUND_VALUE)) OR (((BOOL_FIELD = false OR (STRING_FIELD &lt; STRING_VALUES) OR ((STRING_FIELD &lt;= STRING_VALUES) OR (STRING_FIELD &gt;= STRING_VALUES)))) AND ((NOT (BOOL_FIELD) OR NUMERIC_FIELD IS NOT NULL)))) AND (((NOT (BOOL_FIELD) OR (STRING_FIELD &lt;= STRING_VALUES) OR (STRING_FIELD != STRING_VALUES))) OR ((NUMERIC_FIELD &lt; NUMERIC_VALUE OR STRING_FIELD IS NULL)))))));<\/pre>\n<p><span style=\"font-weight: 400\">\uc774 \ucffc\ub9ac\uc758 \uc5c4\uccad\ub09c \ud06c\uae30\uc5d0\uc11c \uc54c \uc218 \uc788\ub4ef\uc774, \uc774 \ucffc\ub9ac\ub97c \uc790\uccb4\uc801\uc73c\ub85c \uc0dd\uc131\ud558\ub294 \uac83\uc740 \ub9e4\uc6b0 \uc5b4\ub824\uc6e0\uc744 \uac83\uc774\uba70, \uc774\ub7ec\ud55c \ucffc\ub9ac\uc758 \ub300\ubd80\ubd84\uc740 RQG\ub97c \ud1b5\ud574 \uc0dd\uc131 \ubc0f \uc2e4\ud589\ub429\ub2c8\ub2e4. \ub9e4\uc6b0 \ubcf5\uc7a1\ud55c \ucffc\ub9ac\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub294 \uc774 \uae30\ub2a5\uc740 ANSI JOIN\uc758 \uc784\uc758\uc801\uc778 \ubcf5\uc7a1\uc131\uc744 \ucc98\ub9ac\ud558\ub294 \ub370 \uc644\ubcbd\ud558\uac8c \uc801\ud569\ud569\ub2c8\ub2e4. ANSI JOIN\uc744 \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud574 \uc815\uc758\ud55c \ubb38\ubc95\uc740 \uc870\uc778 \uc67c\ucabd\uc758 \ubcf5\uc7a1\uc131\uacfc ON \uc808\uc758 \ubcf5\uc7a1\uc131\uc744 \ud3ec\ucc29\ud558\ub824\uace0 \uc2dc\ub3c4\ud569\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 RQG\uc5d0 <\/span><span style=\"font-weight: 400\">\uc67c\ucabd<\/span><span style=\"font-weight: 400\">\u00a0\ub97c \uc77c\ubc18 \ud0a4 \uacf5\uac04, n1ql \ud558\uc704 \ucffc\ub9ac \ub610\ub294 \uc5ec\ub7ec \uc911\ucca9 \uc870\uc778\uc758 \uc138 \uac00\uc9c0 \uc911 \ud558\ub098\ub85c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 RQG\uc5d0 <\/span><span style=\"font-weight: 400\">\uc624\ub978\ucabd<\/span><span style=\"font-weight: 400\"> \ub97c \ud0a4 \uc2a4\ud398\uc774\uc2a4\ub85c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c RQG\uc5d0 \uc870\uc778\uc744 \uc0dd\uc131\ud558\ub3c4\ub85d \uc9c0\uc2dc\ud569\ub2c8\ub2e4. <\/span><span style=\"font-weight: 400\">ON \uc808<\/span><span style=\"font-weight: 400\">\u00a0\uc758 \uc870\uc778\uc744 \ub450 \ud544\ub4dc \uc0ac\uc774\uc758 \ub300\ubd80\ubd84 \ub3d9\uc77c\uc131 \uc220\uc5b4\ub85c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 <\/span><span style=\"font-weight: 400\">\uc67c\uc190 \ud0a4 \uc2a4\ud398\uc774\uc2a4 \ub610\ub294 \uc67c\uc190 \ubcc4\uce6d<\/span><span style=\"font-weight: 400\">\ubc0f <\/span><span style=\"font-weight: 400\">\uc624\ub978\ucabd \ud0a4 \uacf5\uac04\uc5d0\uc11c \ud558\ub098<\/span><span style=\"font-weight: 400\">. ON \uc808\uc5d0\uc11c \uc0dd\uc131\ub420 \uc218 \uc788\ub294 \ub2e4\ub978 \uac83\ub4e4\uc740 \ube44\ub3d9\ub4f1 \ube44\uad50(\/=\/!=) \ub610\ub294 \ub2e8\uc21c\ud788 \uc624\ub978\ucabd \ud0a4 \uacf5\uac04 \ud544\ub4dc\uc758 \uc18d\uc131 \ud655\uc778(b2.field\uac00 null\uc774 \uc544\ub2d8, b2.field\uac00 \ub204\ub77d\ub418\uc9c0 \uc54a\uc74c, b2.field\uac00 \ubaa9\ub85d\uc5d0 \uc788\uc74c \ub4f1)\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. ANSI JOIN\uc758 \uacbd\uc6b0, N1QL\uacfc SQL \uc0ac\uc774\uc5d0\ub294 \uc57d\uac04\uc758 \ucc28\uc774\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uadf8 \ucc28\uc774\uc810\uc740 N1QL\uc740 \ube44\uad00\uacc4\ud615 \ub370\uc774\ud130 \ubaa8\ub378 \ub54c\ubb38\uc5d0 \ube44\uad50 IS(NOT) MISSING\uc744 \uc9c0\uc6d0\ud55c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc77c\ubd80 \ubc84\ud0b7\uc5d0\ub294 \ud574\ub2f9 \ubc84\ud0b7\uc758 \ub2e4\ub978 \ubb38\uc11c\uc5d0\ub294 \uc5c6\ub294 \ud544\ub4dc\uac00 \uc788\ub294 \ubb38\uc11c\uac00 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c IS (NOT) MISSING\uc740 \ud574\ub2f9 \ud544\ub4dc\uac00 \ubb38\uc11c\uc5d0 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc74c\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4(\ub610\ub294 IS NOT MISSING\uc758 \uacbd\uc6b0 \ud574\ub2f9 \ud544\ub4dc\uac00 \ubb38\uc11c\uc5d0 \ud45c\uc2dc\ub428\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4). \uae30\uc220\uc801\uc73c\ub85c \uc6d0\ud55c\ub2e4\uba74 ON \uc808 \ub0b4\uc5d0\uc11c n1ql \ud558\uc704 \ucffc\ub9ac\ub97c \uc0dd\uc131\ud558\uace0 \uc774\ub97c \uc624\ub978\ucabd \ud0a4 \uacf5\uac04 \uac12\uacfc \ube44\uad50\ud558\ub3c4\ub85d RQG\uc5d0 \uc9c0\uc2dc\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uc774\ub807\uac8c \ud558\uba74 \ucffc\ub9ac \uc2e4\ud589 \uc2dc\uac04\uc774 \uae30\ud558\uae09\uc218\uc801\uc73c\ub85c \ub298\uc5b4\ub098\ubbc0\ub85c \uc77c\ubc18\uc801\uc778 \uc0ac\uc6a9 \uc0ac\ub840\ub294 \uc544\ub2d9\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \uc704\uc758 \ub9e4\uac1c \ubcc0\uc218 \uc9d1\ud569\uc5d0\uc11c \uc0dd\uc131\ub41c \uba87 \uac00\uc9c0 \uc0d8\ud50c ANSI JOIN \ucffc\ub9ac\uc785\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"wrap:true lang:default decode:true\">SELECT OUTER_BUCKET_NAME.* \r\nFROM BUCKET_NAME \r\nINNER JOIN BUCKET_NAME \r\nON ( PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD ) \r\nWHERE NUMERIC_FIELD = NUMERIC_VALUE;<\/pre>\n<pre class=\"wrap:true lang:default decode:true\">SELECT OUTER_BUCKET_NAME.* \r\nFROM BUCKET_NAME \r\nINNER JOIN BUCKET_NAME \r\nON ( (PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD AND PREVIOUS_TABLE.NUMERIC_FIELD = CURRENT_TABLE.NUMERIC_FIELD) ) \r\nLEFT JOIN BUCKET_NAME \r\nON ( (PREVIOUS_TABLE.NUMERIC_FIELD = CURRENT_TABLE.NUMERIC_FIELD OR PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD) ) \r\nINNER JOIN BUCKET_NAME \r\nON ( NOT ((PREVIOUS_TABLE.NUMERIC_FIELD &lt; CURRENT_TABLE.NUMERIC_FIELD AND PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD)) ) \r\nINNER JOIN BUCKET_NAME \r\nON ( (PREVIOUS_TABLE.NUMERIC_FIELD = CURRENT_TABLE.NUMERIC_FIELD AND PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD AND PREVIOUS_TABLE.NUMERIC_FIELD = CURRENT_TABLE.NUMERIC_FIELD) ) \r\nINNER JOIN BUCKET_NAME \r\nON ( (PREVIOUS_TABLE.NUMERIC_FIELD = CURRENT_TABLE.NUMERIC_FIELD AND PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD) ) \r\nINNER JOIN BUCKET_NAME \r\nON ( (PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD AND PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD) ) \r\nINNER JOIN BUCKET_NAME \r\nON ( NOT ((PREVIOUS_TABLE.NUMERIC_FIELD != CURRENT_TABLE.NUMERIC_FIELD OR PREVIOUS_TABLE.STRING_FIELD = CURRENT_TABLE.STRING_FIELD)) ) \r\nINNER JOIN BUCKET_NAME \r\nON ( NOT ((PREVIOUS_TABLE.STRING_FIELD != CURRENT_TABLE.STRING_FIELD AND PREVIOUS_TABLE.NUMERIC_FIELD = CURRENT_TABLE.NUMERIC_FIELD)) ) \r\nWHERE NULL_NUM_FIELD IS NULL or NULL_NUM_FIELD IS MISSING;<\/pre>\n<p><span style=\"font-weight: 400\">\uc774 \uc608\uc5d0\uc11c \ubcfc \uc218 \uc788\ub4ef\uc774 ON \uc808\uc740 AND\/OR\ub85c \uc5f0\uacb0\ub41c \uc5ec\ub7ec \uac1c\uc758 \uc5f0\uc1c4 \uc220\uc5b4\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ud558\ub098\uc758 \ucffc\ub9ac\uc5d0\uc11c \uc5ec\ub7ec \uc870\uc778\uc774 \uc2e4\ud589\ub420 \uc218 \uc788\uc73c\uba70 \uac01 \uc870\uc778\ub9c8\ub2e4 \uace0\uc720\ud55c ON \uc808\uc744 \uac00\uc9c8 \uc218 \uc788\ub2e4\ub294 \uac83\uc744 \uad00\ucc30\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc774\uc81c RQG\uac00 \ud15c\ud50c\ub9bf\uc744 \uc0dd\uc131\ud558\ub294 \ubc29\ubc95\uacfc \uc774\ub7ec\ud55c \ud15c\ud50c\ub9bf\uc758 \ubaa8\uc591\uc744 \uc774\ud574\ud588\uc73c\ub2c8, \ub2e4\ub978 \ubc29\ubc95\uc73c\ub85c\ub294 \ubc1c\uacac\ud558\uc9c0 \ubabb\ud588\uc744 ANSI JOIN \uae30\ub2a5\uc5d0\uc11c \ubc1c\uacac\ud55c \ubc84\uadf8\uc758 \uc608\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <\/span><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27483\"><span style=\"font-weight: 400\">MB-27483<\/span><\/a>, <span style=\"font-weight: 400\">\uc774 \ubc84\uadf8\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ucffc\ub9ac\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"right-set:true wrap:true lang:default decode:true\">SELECT t_2.* \r\nFROM multiple_table_db_492_simple_table_10 t_4 \r\nINNER JOIN multiple_table_db_492_simple_table_4 t_2 \r\nON ( NOT ((t_4.char_field1 = t_2.char_field1 AND t_4.int_field1 = t_2.int_field1)))\r\nWHERE (NOT ((t_2.bool_field1 = true AND t_2.decimal_field1 &lt; 4878))) OR ((((t_2.bool_field1 != true AND t_4.int_field1 IN [ 0 , 12 , 21 , 32 , 39 ])) OR ((t_2.decimal_field1 != 4878) OR (t_4.decimal_field1 &gt;= 4821))) AND (NOT (((NOT (t_4.bool_field1) OR t_2.char_field1 LIKE \"N\")) AND ((t_2.decimal_field1 BETWEEN 5 and 9985 AND t_2.varchar_field1 IS NULL AND t_2.bool_field1 = false))))) LIMIT 100<\/pre>\n<p><span style=\"font-weight: 400\">\uc774 \ucffc\ub9ac\ub294 \uc11c\ubc84 \uc124\uc815 \ubc29\uc2dd\uc5d0 \ub530\ub77c \uc131\uacf5\uc801\uc73c\ub85c \uc2e4\ud589\ub418\uc5b4\uc57c \ud558\uc9c0\ub9cc \uc2e4\ud589 \ub300\uc2e0 \uc624\ub978\ucabd \ud0a4 \uacf5\uac04\uc5d0 \uc801\uc808\ud55c \uc778\ub371\uc2a4\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294\ub2e4\ub294 \uc624\ub958\ub97c \ubc1c\uc0dd\uc2dc\ucf30\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc11c \ubb38\uc81c\ub294 WHERE \uc808\uc774 ON \uc808\uc758 \uc778\ub371\uc2a4 \uc120\ud0dd\uc744 \ubc29\ud574\ud558\uc5ec \uc2e4\uc81c\ub85c \uc778\ub371\uc2a4\uac00 \uc874\uc7ac\ud558\ub294\ub370\ub3c4 \ucffc\ub9ac\uac00 \ud544\uc694\ud55c \uc778\ub371\uc2a4\uac00 \uc5c6\ub2e4\uace0 \uc0dd\uac01\ud558\uac8c \ub9cc\ub4e0\ub2e4\ub294 \uac83\uc774\uc5c8\uc2b5\ub2c8\ub2e4. WHERE \uc808\uc744 \uc0b4\ud3b4\ubcf4\uba74 \ub9e4\uc6b0 \ubcf5\uc7a1\ud558\ub2e4\ub294 \uac83\uc744 \uc54c \uc218 \uc788\ub294\ub370, \uc774\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ud14c\uc2a4\ud2b8\uc758 \uae30\ub2a5\uc801\uc778 \uce21\uba74\uc5d0\uc11c \ubcfc \uc218 \uc788\ub294 \uc218\uc900\uc758 \ubcf5\uc7a1\uc131\uc774 \uc544\ub2d9\ub2c8\ub2e4. \ub530\ub77c\uc11c RQG\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc558\ub2e4\uba74 \uc774 \ubc84\uadf8\ub97c \ubc1c\uacac\ud558\uc9c0 \ubabb\ud588\uc744 \uac83\uc785\ub2c8\ub2e4. <\/span><\/p>\n<h3><span style=\"font-weight: 400\">\ud575\uc2ec \ud3ec\uc778\ud2b8 <\/span><\/h3>\n<p><span style=\"font-weight: 400\">ANSI JOIN\uc740 \uc870\uc778\ud560 \uc218 \uc788\ub294 \ud56d\ubaa9\uc774 \ub9e4\uc6b0 \uc720\uc5f0\ud558\uba70, \uc784\uc758\uc758 \uc2dd\uc744 \ud0a4\uc2a4\ud398\uc774\uc2a4\ub85c \uc870\uc778\ud560 \uc218 \uc788\uace0, ON \uc808\uc5d0 \uc784\uc758\uc758 \uc2dd\uc744 \ud544\ub4dc\uc640 \ube44\uad50\ud558\ub294 \uc220\uc5b4\uac00 \ud3ec\ud568\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc218\uc900\uc758 \ubcf5\uc7a1\uc131 \ub54c\ubb38\uc5d0 \uae30\ub2a5 \ud14c\uc2a4\ud2b8\ub97c \ud1b5\ud574 \ubaa8\ub4e0 \uc2dc\ub098\ub9ac\uc624\ub97c \uc9c1\uc811 \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud55c \uad6c\uccb4\uc801\uc778 \ucffc\ub9ac\ub97c \ub9cc\ub4dc\ub294 \uac83\uc740 \ube44\ud604\uc2e4\uc801\uc785\ub2c8\ub2e4. \ub2e4\ud589\ud788\ub3c4 \uc815\uc758\ud560 \uc218 \uc788\ub294 \uaddc\uce59 \uc9d1\ud569\uc744 \uae30\ubc18\uc73c\ub85c \ucffc\ub9ac\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub294 RQG\ub77c\ub294 \ud504\ub808\uc784\uc6cc\ud06c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc740 \ub9e4\uc6b0 \uac15\ub825\ud558\uc5ec \ub9cc\uc871\ud560 \ub9cc\ud55c \uc218\uc900\uc73c\ub85c ANSI JOIN\uc744 \ud14c\uc2a4\ud2b8\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub9ce\uc740 \uc218\uc758 \ubcf5\uc7a1\ud55c \ucffc\ub9ac\uac00 \uc2e4\ud589\ub418\ub294 \uacbd\uc6b0 ANSI JOIN \uacb0\uacfc\uac00 1\uc529 \ud2c0\ub9b4 \uc218 \uc788\uc9c0\ub9cc, \uac1c\ubcc4 \ucffc\ub9ac \uc911 \ud558\ub098\ub9cc \ub2e8\ub3c5\uc73c\ub85c \uc2e4\ud589\ud558\uba74 \uacb0\uacfc\uac00 \uc62c\ubc14\ub974\uac8c \ub098\uc624\ub294 \ub4f1 \ub2e4\ub978 \ubc29\ubc95\uc73c\ub85c\ub294 \ucc3e\uae30 \uc5b4\ub824\uc6b4 \ubc84\uadf8\ub97c \ubc1c\uacac\ud558\ub294 \ub370\ub3c4 \ub3c4\uc6c0\uc774 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30 \ub54c\ubb38\uc5d0 \uc6b0\ub9ac\ub294 ANSI JOIN\uc774 \uc591\ud638\ud55c \uc0c1\ud0dc\uc774\uba70 \uace0\uac1d\uc774 \uc0ac\uc6a9\ud560 \uc900\ube44\uac00 \ub418\uc5b4 \uc788\ub2e4\uace0 \ud655\uc2e0\ud569\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">RQG\uc5d0\uc11c \ubc1c\uacac\ub41c \ucd94\uac00 ANSI JOIN \ubc84\uadf8 \ubaa9\ub85d\uc785\ub2c8\ub2e4:<\/span><\/h3>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400\">\ubc84\uadf8 \ubc88\ud638 <\/span><\/td>\n<td><span style=\"font-weight: 400\">\ubc84\uadf8 \uc124\uba85<\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27834\"><span style=\"font-weight: 400\">MB-27834<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\uc774 \ucffc\ub9ac\ub294 LIMIT \ucffc\ub9ac \ud78c\ud2b8\ub97c \uc81c\ub300\ub85c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc558\uc73c\uba70, LIMIT\ub97c \uc801\uc6a9\ud558\uae30 \uc804\uc5d0 \uc804\uccb4 \ucffc\ub9ac\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4. <\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27763\"><span style=\"font-weight: 400\">MB-27763<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\uc774 \ucffc\ub9ac\ub294 \uc704\uc758 \ubc84\uadf8\uc640 \uc720\uc0ac\ud558\uac8c LIMIT \ucffc\ub9ac \ud78c\ud2b8\ub97c \uc81c\ub300\ub85c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. <\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27483\"><span style=\"font-weight: 400\">MB-27483<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\ucffc\ub9ac\uc5d0\uc11c \uc801\uc808\ud55c \uc778\ub371\uc2a4\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294\ub2e4\uace0 \uc0dd\uac01\ud558\uc5ec \uc624\ub958\ub97c \ubc1c\uc0dd\uc2dc\ucf30\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc778\ub371\uc2a4\uac00 \uc2e4\uc81c\ub85c \uc2dc\uc2a4\ud15c\uc5d0 \uc874\uc7ac\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27230\"><span style=\"font-weight: 400\">MB-27230<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\ucffc\ub9ac\uc5d0\uc11c \uc798\ubabb\ub41c \uc624\ub958\uac00 \ubc18\ud658\ub418\uc5c8\uc2b5\ub2c8\ub2e4. <\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27201\"><span style=\"font-weight: 400\">MB-27201<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\uc774 \ucffc\ub9ac\uc5d0\uc11c \ubc31\ud544\uc774 \uc81c\ub300\ub85c \uc791\ub3d9\ud558\uc9c0 \uc54a\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27109\"><span style=\"font-weight: 400\">MB-27109<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\uc778\ub371\uc2a4\uac00 \uc2dc\uc2a4\ud15c\uc5d0 \uc874\uc7ac\ud568\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 \ud544\uc694\ud55c \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4\uace0 \uc0dd\uac01\ud55c \ub610 \ub2e4\ub978 \ucffc\ub9ac<\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-27028\"><span style=\"font-weight: 400\">MB-27028<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\uc5ec\ub7ec \uac1c\uc758 \ucffc\ub9ac\ub97c \uc5f0\uc18d\uc73c\ub85c \uc2e4\ud589\ud558\uba74 \uc77c\ubd80 \ucffc\ub9ac \uacb0\uacfc\uac00 1\uc529 \ud2c0\ub838\uc9c0\ub9cc, \ucffc\ub9ac\ub97c \ub2e8\ub3c5\uc73c\ub85c \uc2e4\ud589\ud558\uba74 \ubaa8\ub4e0 \uacb0\uacfc\uac00 \uc815\ud655\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/issues.couchbase.com\/browse\/MB-26649\"><span style=\"font-weight: 400\">MB-26649<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400\">\ucffc\ub9ac\uac00 \uac04\ud5d0\uc801\uc73c\ub85c \uc911\ub2e8\ub428<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span style=\"font-weight: 400\">\ubd80\ub85d<\/span><\/h3>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 5.5 GA \ube14\ub85c\uadf8 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/announcing-couchbase-server-5-5\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/announcing-couchbase-server-5-5\/<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\uc778\ub371\uc2a4 \uc870\uc778 <\/span><a href=\"https:\/\/dzone.com\/articles\/join-faster-with-couchbase-index-joins\"><span style=\"font-weight: 400\">https:\/\/dzone.com\/articles\/join-faster-with-couchbase-index-joins<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">ANSI \uc870\uc778\uc2a4 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/ansi-join-support-n1ql\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/ansi-join-support-n1ql\/<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Randgen <\/span><a href=\"https:\/\/launchpad.net\/randgen\"><span style=\"font-weight: 400\">https:\/\/launchpad.net\/randgen<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">RQG Dzone \uae30\uc0ac \uc2dc\ub9ac\uc988 <\/span><a href=\"https:\/\/dzone.com\/articles\/testing-n1ql-sql-for-json\"><span style=\"font-weight: 400\">https:\/\/dzone.com\/articles\/testing-n1ql-sql-for-json<\/span><\/a><\/li>\n<\/ol>","protected":false},"excerpt":{"rendered":"<p>Overview The main purpose of this article is to show how Couchbase ANSI JOINs are tested. In Couchbase version 5.5, you can now execute joins using the ANSI standard syntax. This addition to joins makes them much more flexible, but [&hellip;]<\/p>","protected":false},"author":19919,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1812],"tags":[2258,1877],"ppma_author":[9072],"class_list":["post-5609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-n1ql-query","tag-5-5","tag-testing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testing ANSI JOINs - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/testing-ansi-joins\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing ANSI JOINs\" \/>\n<meta property=\"og:description\" content=\"Overview The main purpose of this article is to show how Couchbase ANSI JOINs are tested. In Couchbase version 5.5, you can now execute joins using the ANSI standard syntax. This addition to joins makes them much more flexible, but [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/testing-ansi-joins\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-16T22:58:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-08-17T22:17:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ajay Bhullar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ajay Bhullar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/\"},\"author\":{\"name\":\"Ajay Bhullar\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2c218cc6dcebf8b70696e10021b9d616\"},\"headline\":\"Testing ANSI JOINs\",\"datePublished\":\"2018-08-16T22:58:14+00:00\",\"dateModified\":\"2018-08-17T22:17:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/\"},\"wordCount\":1930,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"5.5\",\"testing\"],\"articleSection\":[\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/\",\"name\":\"Testing ANSI JOINs - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2018-08-16T22:58:14+00:00\",\"dateModified\":\"2018-08-17T22:17:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testing ANSI JOINs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2c218cc6dcebf8b70696e10021b9d616\",\"name\":\"Ajay Bhullar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a30f56bcf3017b1a17f7950fb9d04fe9\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3a8dfee793a89973baf873a87529774721a44593fdcb1162f81b133d63d0185c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3a8dfee793a89973baf873a87529774721a44593fdcb1162f81b133d63d0185c?s=96&d=mm&r=g\",\"caption\":\"Ajay Bhullar\"},\"description\":\"Ajay Bhullar is a Software Engineer Tester in Couchbase from 2 years. Ajay is working on how Couchbase ANSI JOINs are tested and In Couchbase version 5.5, how you can execute joins using the ANSI standard syntax.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/ajaybhullar\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Testing ANSI JOINs - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/testing-ansi-joins\/","og_locale":"ko_KR","og_type":"article","og_title":"Testing ANSI JOINs","og_description":"Overview The main purpose of this article is to show how Couchbase ANSI JOINs are tested. In Couchbase version 5.5, you can now execute joins using the ANSI standard syntax. This addition to joins makes them much more flexible, but [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/testing-ansi-joins\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-08-16T22:58:14+00:00","article_modified_time":"2018-08-17T22:17:49+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Ajay Bhullar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ajay Bhullar","Est. reading time":"14\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/"},"author":{"name":"Ajay Bhullar","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2c218cc6dcebf8b70696e10021b9d616"},"headline":"Testing ANSI JOINs","datePublished":"2018-08-16T22:58:14+00:00","dateModified":"2018-08-17T22:17:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/"},"wordCount":1930,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["5.5","testing"],"articleSection":["Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/","url":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/","name":"Testing ANSI JOINs - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2018-08-16T22:58:14+00:00","dateModified":"2018-08-17T22:17:49+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/testing-ansi-joins\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Testing ANSI JOINs"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2c218cc6dcebf8b70696e10021b9d616","name":"Ajay Bhullar","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a30f56bcf3017b1a17f7950fb9d04fe9","url":"https:\/\/secure.gravatar.com\/avatar\/3a8dfee793a89973baf873a87529774721a44593fdcb1162f81b133d63d0185c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3a8dfee793a89973baf873a87529774721a44593fdcb1162f81b133d63d0185c?s=96&d=mm&r=g","caption":"Ajay Bhullar"},"description":"Ajay Bhullar is a Software Engineer Tester in Couchbase from 2 years. Ajay is working on how Couchbase ANSI JOINs are tested and In Couchbase version 5.5, how you can execute joins using the ANSI standard syntax.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/ajaybhullar\/"}]}},"authors":[{"term_id":9072,"user_id":19919,"is_guest":0,"slug":"ajaybhullar","display_name":"Ajay Bhullar","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3a8dfee793a89973baf873a87529774721a44593fdcb1162f81b133d63d0185c?s=96&d=mm&r=g","first_name":"Ajay","last_name":"Bhullar","user_url":"","author_category":"","description":"Ajay Bhullar\ub294 2\ub144\uac04 Couchbase\uc5d0\uc11c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4 \ud14c\uc2a4\ud130\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.\r\nAjay\ub294 Couchbase ANSI \uc870\uc778\uc744 \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uacfc Couchbase \ubc84\uc804 5.5\uc5d0\uc11c ANSI \ud45c\uc900 \uad6c\ubb38\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc870\uc778\uc744 \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc744 \uc5f0\uad6c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/5609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/19919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=5609"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/5609\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=5609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=5609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=5609"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=5609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}