{"id":799,"date":"2007-11-14T01:00:00","date_gmt":"2007-11-13T16:00:00","guid":{"rendered":"https:\/\/ecoop.net\/memo\/2007-11-14-1.html"},"modified":"2026-07-20T00:16:11","modified_gmt":"2026-07-19T15:16:11","slug":"2007-11-14-1","status":"publish","type":"post","link":"https:\/\/www.ecoop.net\/memo\/archives\/2007-11-14-1.html","title":{"rendered":"SQL \u306e JOIN \u306e\u7a2e\u985e\u3068\u9055\u3044\u307e\u3068\u3081 \u2014 INNER\/LEFT\/RIGHT\/FULL\/CROSS"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">(2026\u5e747\u6708\u3001\u5185\u5bb9\u3092\u5168\u9762\u7684\u306b\u66f4\u65b0)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SQL \u3067\u30c6\u30fc\u30d6\u30eb\u3092\u7d50\u5408\u3059\u308b JOIN \u306b\u306f\u3001INNER JOIN\u30fbLEFT OUTER JOIN\u30fbRIGHT OUTER JOIN\u30fbFULL OUTER JOIN\u30fbCROSS JOIN \u306e5\u7a2e\u985e\u304c\u3042\u308a\u307e\u3059\u3002\u9055\u3044\u306f\u4e00\u8a00\u3067\u3044\u3048\u3070\u300c\u7d50\u5408\u76f8\u624b\u304c\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u884c\u3092\u3069\u3046\u6271\u3046\u304b\u300d\u3067\u3059\u3002INNER \u306f\u6368\u3066\u307e\u3059\u3002LEFT\/RIGHT\/FULL \u306f\u6b8b\u3057\u3066 NULL \u3067\u57cb\u3081\u307e\u3059\u3002CROSS \u306f\u305d\u3082\u305d\u3082\u6761\u4ef6\u3092\u4ed8\u3051\u305a\u3001\u5168\u7d44\u307f\u5408\u308f\u305b\u3092\u4f5c\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b54\u3048\u3068\u3057\u3066\u306f\u3053\u308c\u3067\u5168\u90e8\u3067\u3059\u3002\u305f\u3060\u3001\u3053\u306e\u4e00\u8a00\u3060\u3051\u3092\u983c\u308a\u306b\u66f8\u3044\u305f SQL \u306f\u3001\u305f\u3044\u3066\u3044\u300c\u601d\u3063\u305f\u3088\u308a\u884c\u304c\u5c11\u306a\u3044\u300d\u300cNULL \u306e\u884c\u306f\u3069\u3053\u3078\u6d88\u3048\u305f\u300d\u3068\u3044\u3046\u5f62\u3067\u3064\u307e\u305a\u304d\u307e\u3059\u3002\u305d\u3053\u3067\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u7d50\u5408\u76f8\u624b\u306e\u3044\u306a\u3044\u884c\u3092\u308f\u3056\u3068\u6df7\u305c\u305f\u30b5\u30f3\u30d7\u30eb\u30c7\u30fc\u30bf\u306b5\u7a2e\u985e\u306e JOIN \u3092\u9806\u306b\u304b\u3051\u3066\u3001\u7d50\u679c\u304c\u3069\u3046\u5909\u308f\u308b\u304b\u3092\u76ee\u3067\u78ba\u8a8d\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u3042\u308f\u305b\u3066\u7d50\u5408\u6761\u4ef6\u306e\u66f8\u304d\u65b9(ON\/USING\/NATURAL)\u306e\u9055\u3044\u3001\u8907\u6570 JOIN \u306e\u8a55\u4fa1\u9806\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3054\u3068\u306e\u5bfe\u5fdc\u5dee(MySQL \u306b FULL OUTER JOIN \u304c\u306a\u3044\u3001\u306a\u3069)\u3082\u307e\u3068\u3081\u307e\u3059\u3002<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">\u30b5\u30f3\u30d7\u30eb\u30c7\u30fc\u30bf<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u793e\u54e1\u30c6\u30fc\u30d6\u30eb emp \u3068\u90e8\u7f72\u30c6\u30fc\u30d6\u30eb dept \u3092\u4f7f\u3044\u307e\u3059\u3002\u4ee5\u964d\u306e\u5b9f\u884c\u7d50\u679c\u306f\u3059\u3079\u3066\u3053\u306e2\u8868\u306b\u5bfe\u3059\u308b\u3082\u306e\u3067\u3059(PostgreSQL 17 \u3067\u5b9f\u884c\u3002\u307b\u304b\u306e DB \u3067\u306e\u5dee\u7570\u306f\u5f8c\u8ff0\u306e\u5bfe\u5fdc\u8868\u306b\u307e\u3068\u3081\u307e\u3059)\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CREATE TABLE emp (id INT, name VARCHAR(20), dept_id INT);\nCREATE TABLE dept (dept_id INT, dept_name VARCHAR(20));\nINSERT INTO emp VALUES (1,'\u4f50\u85e4',10),(2,'\u9234\u6728',20),(3,'\u9ad8\u6a4b',NULL),(4,'\u7530\u4e2d',40);\nINSERT INTO dept VALUES (10,'\u55b6\u696d\u90e8'),(20,'\u958b\u767a\u90e8'),(30,'\u7dcf\u52d9\u90e8');\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u308f\u3056\u3068\u300c\u306f\u3050\u308c\u8005\u300d\u3092\u6df7\u305c\u3066\u3042\u308a\u307e\u3059\u3002\u9ad8\u6a4b\u3055\u3093\u306f\u90e8\u7f72\u672a\u6240\u5c5e(dept_id \u304c NULL)\u3001\u7530\u4e2d\u3055\u3093\u306e dept_id 40 \u306f dept \u5074\u306b\u5b58\u5728\u305b\u305a\u3001\u7dcf\u52d9\u90e8(30)\u306b\u306f\u6240\u5c5e\u3059\u308b\u793e\u54e1\u304c\u3044\u307e\u305b\u3093\u3002\u3053\u306e3\u3064\u306e\u6271\u3044\u304c JOIN \u306e\u7a2e\u985e\u3054\u3068\u306b\u5909\u308f\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">JOIN \u306e\u7a2e\u985e\u3068\u7d50\u679c\u306e\u9055\u3044<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">INNER JOIN(\u5185\u90e8\u7d50\u5408)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u7d50\u5408\u6761\u4ef6\u3092\u6e80\u305f\u3059\u884c\u306e\u7d44\u3060\u3051\u3092\u8fd4\u3057\u307e\u3059\u3002\u3069\u3061\u3089\u304b\u7247\u65b9\u306b\u3057\u304b\u306a\u3044\u884c\u306f\u7d50\u679c\u304b\u3089\u6d88\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp INNER JOIN dept USING(dept_id);\n<\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>dept_id<\/th><th>id<\/th><th>name<\/th><th>dept_name<\/th><\/tr><\/thead><tbody><tr><td>10<\/td><td>1<\/td><td>\u4f50\u85e4<\/td><td>\u55b6\u696d\u90e8<\/td><\/tr><tr><td>20<\/td><td>2<\/td><td>\u9234\u6728<\/td><td>\u958b\u767a\u90e8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7d50\u679c\u306f2\u884c\u3067\u3059\u3002\u9ad8\u6a4b(NULL)\u30fb\u7530\u4e2d(\u76f8\u624b\u306a\u3057)\u30fb\u7dcf\u52d9\u90e8(\u793e\u54e1\u306a\u3057)\u306f\u3059\u3079\u3066\u6d88\u3048\u307e\u3057\u305f\u3002\u300c\u4e21\u65b9\u306b\u3042\u308b\u3082\u306e\u3060\u3051\u300d\u304c INNER JOIN \u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u306a\u304a\u521d\u7248\u306e\u3053\u306e\u8a18\u4e8b\u3067\u306f INNER JOIN \u3092\u300c\u5185\u7a4d\u300d\u3068\u8aac\u660e\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u3053\u308c\u306f\u7528\u8a9e\u306e\u8aa4\u308a\u3067\u3057\u305f\u3002\u52d5\u304d\u3068\u3057\u3066\u306f\u300c2\u8868\u306e\u5168\u7d44\u307f\u5408\u308f\u305b(\u76f4\u7a4d)\u304b\u3089\u3001\u6761\u4ef6\u306b\u5408\u3046\u7d44\u3060\u3051\u3092\u6b8b\u3059\u300d\u3068\u8003\u3048\u308b\u306e\u304c\u6b63\u78ba\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">LEFT OUTER JOIN(\u5de6\u5916\u90e8\u7d50\u5408)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u5de6\u306e\u30c6\u30fc\u30d6\u30eb(emp)\u306e\u884c\u306f\u3001\u7d50\u5408\u76f8\u624b\u304c\u3044\u306a\u304f\u3066\u3082\u5168\u90e8\u6b8b\u3057\u307e\u3059\u3002\u76f8\u624b\u304c\u3044\u306a\u3044\u884c\u306f\u3001\u53f3\u30c6\u30fc\u30d6\u30eb\u7531\u6765\u306e\u5217\u304c NULL \u3067\u57cb\u3081\u3089\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp LEFT JOIN dept USING(dept_id);\n<\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>dept_id<\/th><th>id<\/th><th>name<\/th><th>dept_name<\/th><\/tr><\/thead><tbody><tr><td>10<\/td><td>1<\/td><td>\u4f50\u85e4<\/td><td>\u55b6\u696d\u90e8<\/td><\/tr><tr><td>20<\/td><td>2<\/td><td>\u9234\u6728<\/td><td>\u958b\u767a\u90e8<\/td><\/tr><tr><td>NULL<\/td><td>3<\/td><td>\u9ad8\u6a4b<\/td><td>NULL<\/td><\/tr><tr><td>40<\/td><td>4<\/td><td>\u7530\u4e2d<\/td><td>NULL<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4\u884c\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u9ad8\u6a4b\u3068\u7530\u4e2d\u3082\u6b8b\u308a\u3001dept_name \u304c NULL \u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u300c\u5de6\u306f\u5168\u54e1\u51fa\u5e2d\u3001\u53f3\u306f\u6765\u3089\u308c\u308b\u4eba\u3060\u3051\u300d\u3068\u3044\u3046\u30a4\u30e1\u30fc\u30b8\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">INNER \u3068 LEFT \u306e\u3069\u3061\u3089\u3092\u4f7f\u3046\u3079\u304d\u304b\u3001\u307e\u305f\u6761\u4ef6\u3092 ON \u306b\u66f8\u304f\u304b WHERE \u306b\u66f8\u304f\u304b\u3067\u7d50\u679c\u304c\u5909\u308f\u308b\u8a71\u306f\u3001<a href=\"\/memo\/archives\/inner-join-left-join.html\">INNER JOIN \u3068 LEFT JOIN \u306e\u9055\u3044 \u2014 \u7d50\u679c\u304c\u3069\u3046\u5909\u308f\u308b\u304b\u5b9f\u4f8b\u3067\u78ba\u8a8d<\/a> \u3067\u8a73\u3057\u304f\u6271\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">RIGHT OUTER JOIN(\u53f3\u5916\u90e8\u7d50\u5408)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">LEFT \u306e\u5de6\u53f3\u3092\u5165\u308c\u66ff\u3048\u305f\u3082\u306e\u3067\u3059\u3002\u4eca\u5ea6\u306f\u53f3\u306e\u30c6\u30fc\u30d6\u30eb(dept)\u306e\u884c\u304c\u5168\u90e8\u6b8b\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp RIGHT JOIN dept USING(dept_id);\n<\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>dept_id<\/th><th>id<\/th><th>name<\/th><th>dept_name<\/th><\/tr><\/thead><tbody><tr><td>10<\/td><td>1<\/td><td>\u4f50\u85e4<\/td><td>\u55b6\u696d\u90e8<\/td><\/tr><tr><td>20<\/td><td>2<\/td><td>\u9234\u6728<\/td><td>\u958b\u767a\u90e8<\/td><\/tr><tr><td>30<\/td><td>NULL<\/td><td>NULL<\/td><td>\u7dcf\u52d9\u90e8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">3\u884c\u3067\u3059\u3002\u793e\u54e1\u306e\u3044\u306a\u3044\u7dcf\u52d9\u90e8\u304c\u3001id \u3068 name \u3092 NULL \u306b\u3057\u3066\u73fe\u308c\u307e\u3057\u305f\u3002<code>emp RIGHT JOIN dept<\/code> \u306f <code>dept LEFT JOIN emp<\/code> \u3068\u540c\u3058\u884c\u3092\u8fd4\u3059\u306e\u3067(<code>SELECT *<\/code> \u3067\u306e\u5217\u306e\u4e26\u3073\u9806\u306f\u5909\u308f\u308a\u307e\u3059)\u3001\u5b9f\u52d9\u3067\u306f LEFT \u306b\u66f8\u304d\u63db\u3048\u3066\u7d71\u4e00\u3057\u3066\u3057\u307e\u3046\u3053\u3068\u304c\u591a\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">FULL OUTER JOIN(\u5b8c\u5168\u5916\u90e8\u7d50\u5408)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">LEFT \u3068 RIGHT \u3092\u5408\u308f\u305b\u305f\u3082\u306e\u3067\u3001\u4e21\u65b9\u306e\u30c6\u30fc\u30d6\u30eb\u306e\u884c\u3092\u3059\u3079\u3066\u6b8b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp FULL OUTER JOIN dept USING(dept_id);\n<\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>dept_id<\/th><th>id<\/th><th>name<\/th><th>dept_name<\/th><\/tr><\/thead><tbody><tr><td>10<\/td><td>1<\/td><td>\u4f50\u85e4<\/td><td>\u55b6\u696d\u90e8<\/td><\/tr><tr><td>20<\/td><td>2<\/td><td>\u9234\u6728<\/td><td>\u958b\u767a\u90e8<\/td><\/tr><tr><td>NULL<\/td><td>3<\/td><td>\u9ad8\u6a4b<\/td><td>NULL<\/td><\/tr><tr><td>40<\/td><td>4<\/td><td>\u7530\u4e2d<\/td><td>NULL<\/td><\/tr><tr><td>30<\/td><td>NULL<\/td><td>NULL<\/td><td>\u7dcf\u52d9\u90e8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">5\u884c(LEFT \u306e4\u884c+\u7dcf\u52d9\u90e8)\u3067\u3059\u30022\u3064\u306e\u30c7\u30fc\u30bf\u306e\u7a81\u304d\u5408\u308f\u305b\u3067\u300c\u3069\u3061\u3089\u304b\u7247\u65b9\u306b\u3057\u304b\u306a\u3044\u3082\u306e\u3082\u6f0f\u3089\u3055\u305a\u898b\u305f\u3044\u300d\u3068\u304d\u306b\u4f7f\u3044\u307e\u3059\u3002\u305f\u3060\u3057 MySQL \u306f FULL OUTER JOIN \u306b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u305b\u3093(\u4ee3\u66ff\u306f\u5f8c\u8ff0)\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">CROSS JOIN(\u4ea4\u5dee\u7d50\u5408)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u7d50\u5408\u6761\u4ef6\u306a\u3057\u3067\u3001\u5de6\u53f3\u306e\u5168\u884c\u306e\u7d44\u307f\u5408\u308f\u305b(\u76f4\u7a4d)\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT COUNT(*) FROM emp CROSS JOIN dept;\n-- \u2192 12(4\u884c \u00d7 3\u884c)\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">emp 4\u884c \u00d7 dept 3\u884c = 12\u884c\u3067\u3059\u3002\u7d44\u307f\u5408\u308f\u305b\u8868\u3092\u4f5c\u308a\u305f\u3044\u5834\u5408\u4ee5\u5916\u3067\u610f\u56f3\u3057\u3066\u4f7f\u3046\u3053\u3068\u306f\u307e\u308c\u3067\u3001\u3080\u3057\u308d\u300c\u7d50\u5408\u6761\u4ef6\u3092\u66f8\u304d\u5fd8\u308c\u305f\u4e8b\u6545\u300d\u306e\u7d50\u679c\u3068\u3057\u3066\u76ee\u306b\u3059\u308b\u3053\u3068\u304c\u591a\u3044\u7d50\u5408\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7701\u7565\u5f62\u306e\u5bfe\u5fdc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u666e\u6bb5\u3088\u304f\u898b\u308b <code>JOIN<\/code> \u3084 <code>LEFT JOIN<\/code> \u306f\u7701\u7565\u5f62\u3067\u3059\u3002\u5bfe\u5fdc\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3001PostgreSQL 17 \/ MySQL 8.4 \/ SQLite 3.51 \u3067\u6b63\u5f0f\u5f62\u3068\u7d50\u679c\u304c\u4e00\u81f4\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059(Oracle \u3067\u3082 <code>JOIN<\/code> = <code>INNER JOIN<\/code> \u3092\u78ba\u8a8d\u6e08\u307f)\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u7701\u7565\u5f62<\/th><th>\u6b63\u5f0f\u306a\u66f8\u304d\u65b9<\/th><\/tr><\/thead><tbody><tr><td>JOIN<\/td><td>INNER JOIN<\/td><\/tr><tr><td>LEFT JOIN<\/td><td>LEFT OUTER JOIN<\/td><\/tr><tr><td>RIGHT JOIN<\/td><td>RIGHT OUTER JOIN<\/td><\/tr><tr><td>FULL JOIN<\/td><td>FULL OUTER JOIN<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u203b FULL JOIN \u306e\u884c\u3060\u3051\u306f\u3001FULL OUTER JOIN \u306b\u5bfe\u5fdc\u3059\u308b DB \u306e\u3046\u3061 PostgreSQL\/SQLite \u3067\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u3002MySQL \u306f FULL \u7d50\u5408\u81ea\u4f53\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u305b\u3093(\u5f8c\u8ff0)\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3064\u307e\u308a INNER \u3068 OUTER \u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u306f\u4ed8\u3051\u3066\u3082\u4ed8\u3051\u306a\u304f\u3066\u3082\u610f\u5473\u304c\u5909\u308f\u308a\u307e\u305b\u3093\u3002\u30ab\u30f3\u30de\u533a\u5207\u308a\u306e\u53e4\u3044\u66f8\u304d\u65b9(<code>FROM emp, dept WHERE \u2026<\/code>)\u3068\u306e\u95a2\u4fc2\u3084\u3001JOIN \u3068\u6df7\u5728\u3055\u305b\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b\u7f60\u3082\u542b\u3081\u3066\u3001<a href=\"\/memo\/archives\/sql-join-shorthand.html\">SQL \u306e JOIN \u306f\u7701\u7565\u3067\u304d\u308b \u2014 INNER\/OUTER \u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u30ab\u30f3\u30de\u7d50\u5408\u306e\u6574\u7406<\/a> \u306b\u6574\u7406\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ON, USING, NATURAL \u306b\u3088\u308b\u7d50\u5408\u6761\u4ef6\u306e\u6307\u5b9a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">CROSS JOIN \u4ee5\u5916\u306e JOIN \u306b\u306f\u7d50\u5408\u6761\u4ef6\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u66f8\u304d\u65b9\u306f3\u901a\u308a\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ON \u306f\u6700\u3082\u6c4e\u7528\u7684\u306a\u66f8\u304d\u65b9\u3067\u3001WHERE \u3068\u540c\u3058\u5f62\u5f0f\u306e\u6761\u4ef6\u5f0f\u3092\u66f8\u304d\u307e\u3059\u3002\u5217\u540d\u304c\u5de6\u53f3\u3067\u9055\u3063\u3066\u3044\u3066\u3082\u3001\u7b49\u53f7\u4ee5\u5916\u306e\u6761\u4ef6\u3067\u3082\u66f8\u3051\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp JOIN dept ON emp.dept_id = dept.dept_id;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">USING \u306f\u300c\u4e21\u30c6\u30fc\u30d6\u30eb\u3067\u540c\u540d\u306e\u5217\u300d\u3067\u7b49\u7d50\u5408\u3059\u308b\u5834\u5408\u306e\u77ed\u7e2e\u5f62\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp JOIN dept USING(dept_id);\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ON \u3068\u306e\u898b\u305f\u76ee\u4ee5\u4e0a\u306e\u9055\u3044\u3068\u3057\u3066\u3001USING \u306f\u7d50\u5408\u5217\u30921\u3064\u306b\u30de\u30fc\u30b8\u3057\u307e\u3059\u3002\u4e0a\u306e ON \u306e\u4f8b\u3067\u306f\u7d50\u679c\u306b emp.dept_id \u3068 dept.dept_id \u306e2\u5217\u304c\u73fe\u308c\u307e\u3059\u304c\u3001USING(dept_id) \u3067\u306f dept_id \u306f1\u56de\u3060\u3051(\u5148\u982d\u306b)\u73fe\u308c\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u306e\u7d50\u679c\u8868\u3067 dept_id \u304c\u5148\u982d\u306b1\u5217\u3060\u3051\u3042\u3063\u305f\u306e\u306f\u3053\u306e\u305f\u3081\u3067\u3059(PostgreSQL\/MySQL\/SQLite \u3067\u5171\u901a\u306e\u6319\u52d5\u3067\u3059)\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NATURAL \u306f\u300c\u4e21\u30c6\u30fc\u30d6\u30eb\u306e\u540c\u540d\u5217\u3059\u3079\u3066\u300d\u3092\u81ea\u52d5\u7684\u306b USING \u306b\u6307\u5b9a\u3057\u305f\u306e\u3068\u540c\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp NATURAL JOIN dept;\n-- \u2192 INNER JOIN USING(dept_id) \u3068\u540c\u30582\u884c\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">emp \u3068 dept \u306e\u5171\u901a\u5217\u306f dept_id \u3060\u3051\u306a\u306e\u3067\u3001\u3053\u306e\u4f8b\u3067\u306f USING(dept_id) \u3068\u540c\u3058\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002\u305f\u3060\u3057 NATURAL \u306f\u300c\u305f\u307e\u305f\u307e\u540c\u540d\u306e\u5217\u300d\u307e\u3067\u52dd\u624b\u306b\u7d50\u5408\u6761\u4ef6\u3078\u53d6\u308a\u8fbc\u3080\u305f\u3081\u3001\u30c6\u30fc\u30d6\u30eb\u5b9a\u7fa9\u306e\u5909\u66f4\u3067\u610f\u5473\u304c\u5909\u308f\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u52d5\u304d\u3092\u7406\u89e3\u3057\u3066\u304a\u304f\u4fa1\u5024\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u66f8\u304f\u306a\u3089 ON \u304b USING \u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8907\u6570\u306e JOIN \u3092\u7d44\u307f\u5408\u308f\u305b\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">JOIN \u306f3\u8868\u4ee5\u4e0a\u3064\u306a\u3052\u3089\u308c\u307e\u3059\u3002\u30ab\u30c3\u30b3\u304c\u306a\u3051\u308c\u3070\u5de6\u304b\u3089\u9806\u306b\u7d50\u5408\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u7bc0\u306e SQL \u306f\u66f8\u304d\u65b9(\u69cb\u6587\u3068\u8a55\u4fa1\u9806)\u306e\u8aac\u660e\u7528\u3067\u30013\u8868\u76ee\u306e loc \u306f\u5192\u982d\u306e\u30b5\u30f3\u30d7\u30eb\u30c7\u30fc\u30bf\u306b\u306f\u306a\u3044\u67b6\u7a7a\u306e\u30c6\u30fc\u30d6\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp\n  JOIN dept USING(dept_id)\n  JOIN loc  USING(loc_id);\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u5834\u5408\u3001\u307e\u305a emp \u3068 dept \u304c\u7d50\u5408\u3055\u308c\u3001\u305d\u306e\u7d50\u679c\u306b loc \u304c\u7d50\u5408\u3055\u308c\u307e\u3059\u3002\u9806\u5e8f\u3092\u5909\u3048\u305f\u3044\u3068\u304d\u306f\u30ab\u30c3\u30b3\u3067\u56f2\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM emp e\n  LEFT JOIN (dept d JOIN loc l USING(loc_id)) ON e.dept_id = d.dept_id;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u3046\u66f8\u304f\u3068 dept \u3068 loc \u306e INNER JOIN \u304c\u5148\u306b\u8a55\u4fa1\u3055\u308c\u3001\u305d\u306e\u7d50\u679c\u306b\u5bfe\u3057\u3066 emp \u3092 LEFT JOIN \u3057\u307e\u3059\u3002\u5916\u90e8\u7d50\u5408\u304c\u6df7\u3056\u308b\u3068\u304d\u306f\u3053\u306e\u9806\u5e8f\u3067\u7d50\u679c\u304c\u5909\u308f\u308b\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u3001\u610f\u56f3\u304c\u3042\u308b\u5834\u5408\u306f\u30ab\u30c3\u30b3\u3067\u660e\u793a\u3057\u3066\u304a\u304f\u3068\u5b89\u5168\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3054\u3068\u306e\u5bfe\u5fdc\u5dee<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SQL \u6a19\u6e96\u306e\u7bc4\u56f2\u3067\u3082\u3001\u5b9f\u88c5\u306b\u3088\u3063\u3066\u4f7f\u3048\u308b\u69cb\u6587\u306b\u5dee\u304c\u3042\u308a\u307e\u3059\u3002\u4eca\u56de\u5b9f\u6e2c\u3057\u305f4\u7cfb\u3067\u306e\u5bfe\u5fdc\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><\/th><th>PostgreSQL 17<\/th><th>MySQL 8.4<\/th><th>SQLite 3.51<\/th><th>Oracle 23ai<\/th><\/tr><\/thead><tbody><tr><td>INNER\/LEFT JOIN<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u25cb<\/td><\/tr><tr><td>RIGHT JOIN<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u25cb(3.39.0\u304b\u3089)<\/td><td>\u25cb<\/td><\/tr><tr><td>FULL OUTER JOIN<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u25cb(3.39.0\u304b\u3089)<\/td><td>\u25cb<\/td><\/tr><tr><td>CROSS JOIN \u306b ON\/USING<\/td><td>\u00d7(\u69cb\u6587\u30a8\u30e9\u30fc)<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u00d7(\u30a8\u30e9\u30fc)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u88dc\u8db3\u3092\u3044\u304f\u3064\u304b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SQLite \u306e RIGHT JOIN \u3068 FULL OUTER JOIN \u306f 3.39.0(2022\u5e746\u6708)\u3067\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u305d\u308c\u3088\u308a\u53e4\u3044 SQLite \u3067\u306f\u4f7f\u3048\u307e\u305b\u3093\u3002\u307e\u305f SQLite \u306e CROSS JOIN \u306b\u306f\u5c11\u3057\u7279\u6b8a\u306a\u5f79\u5272\u304c\u3042\u308a\u3001\u30aa\u30d7\u30c6\u30a3\u30de\u30a4\u30b6\u304c\u30c6\u30fc\u30d6\u30eb\u306e\u7d50\u5408\u9806\u5e8f\u3092\u4e26\u3079\u66ff\u3048\u306a\u304f\u306a\u308a\u307e\u3059(\u7d50\u5408\u9806\u3092\u56fa\u5b9a\u3057\u305f\u3044\u3068\u304d\u306e\u624b\u6bb5\u3068\u3057\u3066\u516c\u5f0f\u306b\u6848\u5185\u3055\u308c\u3066\u3044\u307e\u3059)\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CROSS JOIN \u306b ON \u3084 USING \u3092\u4ed8\u3051\u3089\u308c\u308b\u304b\u306f\u5b9f\u88c5\u3067\u5272\u308c\u3066\u3044\u307e\u3059\u3002MySQL \u306f\u30de\u30cb\u30e5\u30a2\u30eb\u306b\u660e\u8a18\u304c\u3042\u308b\u3068\u304a\u308a JOIN \/ CROSS JOIN \/ INNER JOIN \u3092\u69cb\u6587\u4e0a\u540c\u7fa9\u306b\u6271\u3046\u305f\u3081 <code>CROSS JOIN \u2026 ON<\/code> \u3082\u901a\u308a\u307e\u3059\u304c(SQLite \u3082\u540c\u69d8\u306b\u901a\u308a\u307e\u3059)\u3001PostgreSQL \u3068 Oracle \u3067\u306f\u69cb\u6587\u30a8\u30e9\u30fc\u3067\u3059\u3002\u3058\u3064\u306f\u521d\u7248\u306e\u3053\u306e\u8a18\u4e8b\u306b\u306f\u300cPostgreSQL \u3084 MySQL \u3067\u306f CROSS JOIN \u306b ON, USING \u3092\u6307\u5b9a\u3059\u308b\u3068 INNER JOIN \u3068\u7b49\u4fa1\u300d\u3068\u66f8\u3044\u3066\u3044\u307e\u3057\u305f\u3002\u4eca\u56de PostgreSQL 17 \u3067\u5b9f\u884c\u3057\u76f4\u3057\u3066\u3001\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u300219\u5e74\u8fd1\u304f\u3001\u534a\u5206\u8aa4\u3063\u305f\u8a18\u8ff0\u3092\u8f09\u305b\u3066\u3044\u305f\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002\u79fb\u690d\u6027\u3092\u8003\u3048\u308b\u3068\u3001\u6761\u4ef6\u3092\u4ed8\u3051\u308b\u306a\u3089\u7d20\u76f4\u306b INNER JOIN \u3068\u66f8\u304f\u306e\u304c\u7121\u96e3\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MySQL \u3067 FULL OUTER JOIN \u76f8\u5f53\u306e\u7d50\u679c\u304c\u6b32\u3057\u3044\u5834\u5408\u306f\u3001LEFT JOIN \u3068 RIGHT JOIN \u3092 UNION ALL \u3067\u5408\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT id, name, dept_id, dept_name FROM emp LEFT JOIN dept USING(dept_id)\nUNION ALL\nSELECT id, name, dept_id, dept_name FROM emp RIGHT JOIN dept USING(dept_id)\nWHERE emp.id IS NULL;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">MySQL 8.4 \u3067\u5b9f\u884c\u3059\u308b\u3068\u3001\u524d\u8ff0\u306e FULL OUTER JOIN \u3068\u540c\u30585\u884c\u304c\u5f97\u3089\u308c\u307e\u3059\u30022\u3064\u76ee\u306e SELECT \u306e <code>WHERE emp.id IS NULL<\/code> \u3067\u300c\u53f3\u5074\u306b\u3057\u304b\u306a\u3044\u884c\u300d(\u7dcf\u52d9\u90e8)\u3060\u3051\u3092\u8db3\u3059\u306e\u304c\u30dd\u30a4\u30f3\u30c8\u3067\u3059\u3002\u306a\u304a\u5217\u306f USING \u3067\u30de\u30fc\u30b8\u3055\u308c\u305f dept_id \u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u3053\u3053\u3067 <code>dept.dept_id<\/code> \u3092\u9078\u3076\u3068\u3001dept \u5074\u306b\u5b58\u5728\u3057\u306a\u3044\u7530\u4e2d\u306e dept_id 40 \u304c NULL \u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059(\u5b9f\u969b\u306b\u3084\u3063\u3066\u307f\u3066\u6c17\u3065\u3044\u305f\u7f60\u3067\u3059)\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oracle \u306b\u306f ANSI \u306e JOIN \u69cb\u6587\u304c\u5165\u308b\u524d\u306e\u72ec\u81ea\u8a18\u6cd5(\u30ab\u30f3\u30de\u7d50\u5408+ <code>(+)<\/code> \u6f14\u7b97\u5b50)\u304c\u3042\u308a\u3001\u53e4\u3044\u30b3\u30fc\u30c9\u3067\u306f\u4eca\u3082\u3088\u304f\u898b\u304b\u3051\u307e\u3059\u3002\u65e7\u8a18\u6cd5\u3068 ANSI \u69cb\u6587\u306e\u5bfe\u5fdc\u306f <a href=\"\/memo\/archives\/oracle-join-syntax.html\">Oracle \u306e JOIN \u306e\u66f8\u304d\u65b9 \u2014 \u65e7\u8a18\u6cd5 (+) \u3068 ANSI \u69cb\u6587\u306e\u5bfe\u5fdc\u8868<\/a> \u306b\u307e\u3068\u3081\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u3055\u3044\u3054\u306b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">JOIN \u306e\u7a2e\u985e\u306f\u300c\u7d50\u5408\u76f8\u624b\u304c\u3044\u306a\u3044\u884c\u3092\u3069\u3046\u3059\u308b\u304b\u300d\u3067\u9078\u3073\u307e\u3059\u3002\u90e8\u7f72\u306e\u306a\u3044\u9ad8\u6a4b\u3055\u3093\u3068\u3001\u90e8\u7f72\u756a\u53f7\u3060\u3051\u304c\u5b99\u306b\u6d6e\u3044\u305f\u7530\u4e2d\u3055\u3093\u3068\u3001\u793e\u54e1\u306e\u3044\u306a\u3044\u7dcf\u52d9\u90e8\u3092\u3069\u3046\u3057\u305f\u3044\u304b\u3001\u3068\u8a00\u3044\u63db\u3048\u3066\u3082\u304b\u307e\u3044\u307e\u305b\u3093\u3002\u4e21\u65b9\u306b\u3042\u308b\u884c\u3060\u3051\u3067\u3088\u3051\u308c\u3070 INNER\u3001\u7247\u5074\u3092\u5168\u90e8\u6b8b\u3059\u306a\u3089 LEFT(\u307e\u305f\u306f RIGHT)\u3001\u4e21\u5074\u3068\u3082\u6b8b\u3059\u306a\u3089 FULL OUTER \u3067\u3059\u3002FULL OUTER \u304c\u4f7f\u3048\u306a\u3044 MySQL \u3067\u306f UNION ALL \u3067\u5408\u6210\u3057\u307e\u3059\u3002\u7d50\u5408\u6761\u4ef6\u306f ON \u304c\u57fa\u672c\u3067\u3001\u540c\u540d\u5217\u306e\u7b49\u7d50\u5408\u306a\u3089 USING(\u7d50\u679c\u306e\u5217\u304c1\u3064\u306b\u30de\u30fc\u30b8\u3055\u308c\u308b)\u3082\u4fbf\u5229\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"\/memo\/archives\/sql-join-shorthand.html\">SQL \u306e JOIN \u306f\u7701\u7565\u3067\u304d\u308b \u2014 INNER\/OUTER \u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u30ab\u30f3\u30de\u7d50\u5408\u306e\u6574\u7406<\/a><\/li>\n\n\n\n<li><a href=\"\/memo\/archives\/inner-join-left-join.html\">INNER JOIN \u3068 LEFT JOIN \u306e\u9055\u3044 \u2014 \u7d50\u679c\u304c\u3069\u3046\u5909\u308f\u308b\u304b\u5b9f\u4f8b\u3067\u78ba\u8a8d<\/a><\/li>\n\n\n\n<li><a href=\"\/memo\/archives\/oracle-join-syntax.html\">Oracle \u306e JOIN \u306e\u66f8\u304d\u65b9 \u2014 \u65e7\u8a18\u6cd5 (+) \u3068 ANSI \u69cb\u6587\u306e\u5bfe\u5fdc\u8868<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">(\u4ee5\u4e0b\u65e7\u8a18\u4e8b\u3067\u3059)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MySQL \/ PostgreSQL \/ Oracle \u3059\u3079\u3066\u306eSQL\u30b5\u30fc\u30d0\u3067\u57fa\u6e96\u306b\u306a\u3063\u3066\u3044\u308bSQL\u6a19\u6e96\u306eJOIN(LEFT JOIN\u306a\u3069)\u306b\u3064\u3044\u3066\u3001\u57fa\u790e\u304b\u3089\u3057\u3063\u304b\u308a\u307e\u3068\u3081\u3066\u307f\u307e\u3057\u305f\u3002<br \/><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"a0\">\u25a0<\/a>\u76ee\u6b21<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"#a1\">JOIN\u306e\u7a2e\u985e<\/a><br \/><\/li>\n\n\n\n<li><a href=\"#a2\">ON, USING, NATURAL\u306b\u3088\u308b\u7d50\u5408\u6761\u4ef6\u6307\u5b9a<\/a><br \/><\/li>\n\n\n\n<li><a href=\"#a3\">\u8907\u6570\u306eJOIN\u53e5\u3092\u7d44\u307f\u5408\u308f\u305b\u308b<\/a><br \/><\/li>\n\n\n\n<li><a href=\"#a4\">\u53c2\u8003\u30ea\u30f3\u30af<\/a><br \/><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"a1\" href=\"#a0\">\u25a0<\/a>JOIN\u306e\u7a2e\u985e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SQL \u6a19\u6e96\u3067\u306f JOIN \u53e5\u306b\u3088\u308b\u7d50\u5408\u69cb\u6587\u306f\u6b21\u306e\u3088\u3046\u306a\u7a2e\u985e\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">INNER JOIN<br \/>\nLEFT OUTER JOIN<br \/>\nRIGHT OUTER JOIN<br \/>\nCROSS JOIN\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">LEFT JOIN, RIGHT JOIN \u306a\u3069\u3001\u3088\u304f\u4f7f\u308f\u308c\u308b\u69cb\u6587\u306f\u4e0a\u8a18\u306e\u7701\u7565\u5f62\u3067\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u30fb\u305f\u3060\u306e JOIN \u306f INNER JOIN \u306e\u7701\u7565\u5f62\u3002<br \/>\n\u30fbLEFT JOIN \u306f LEFT OUTER JOIN \u306e\u7701\u7565\u5f62\u3002<br \/>\n\u30fbRIGHT JOIN \u306f RIGHT OUTER JOIN \u306e\u7701\u7565\u5f62\u3002\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u308c\u305e\u308c\u306e JOIN \u69cb\u6587\u306e\u610f\u5473\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"readmore\">\n&nbsp;<p><\/p>\n<h3>INNER JOIN: \u5185\u90e8\u7d50\u5408<\/h3>\n<p>\n\u6307\u5b9a\u3057\u305f\u30ab\u30e9\u30e0\u306b\u3064\u3044\u3066\u540c\u3058\u5024\u3092\u6301\u3064\u30ec\u30b3\u30fc\u30c9\u540c\u58eb\u3092\u7d50\u3073\u3064\u3051\u308b\u3002<br \/>\n\u5185\u7a4d\u306a\u306e\u3067\u6307\u5b9a\u3057\u305f\u30ab\u30e9\u30e0\u306e\u5024\u304c\u3069\u3061\u3089\u304b\u306b\u3057\u304b\u306a\u3044\u30ec\u30b3\u30fc\u30c9\u306b\u3064\u3044\u3066\u306f\u7d50\u679c\u306b\u542b\u307e\u308c\u307e\u305b\u3093\u3002\n<\/p><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 INNER JOIN table2 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f\u3001\u6b21\u306e SQL \u6587\u3068\u540c\u3058\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1, table2 WHERE table1.id = table2.id\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">LEFT OUTER JOIN: \u5916\u90e8\u7d50\u5408<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n\u5de6\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u57fa\u6e96\u306b\u3057\u3066\u3001\u6307\u5b9a\u3057\u305f\u30ab\u30e9\u30e0\u306b\u3064\u3044\u3066\u540c\u3058\u5024\u3092\u6301\u3064\u30ec\u30b3\u30fc\u30c9\u540c\u58eb\u3092\u7d50\u3073\u3064\u3051\u308b\u3002<br \/>\n\u5024\u304c\u53f3\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u3042\u308a\u5de6\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u306a\u3044\u5834\u5408\u306f INNER JOIN \u540c\u69d8\u7d50\u679c\u306b\u542b\u307e\u308c\u307e\u305b\u3093\u304c\u3001<br \/>\n\u5024\u304c\u5de6\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u3042\u308a\u53f3\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u306a\u3044\u5834\u5408\u306f INNER JOIN \u3068\u7570\u306a\u308a \u53f3\u306e\u30c6\u30fc\u30d6\u30eb\u306e\u30ab\u30e9\u30e0\u306b\u306f\u5168\u3066 NULL \u304c\u30d1\u30c7\u30a3\u30f3\u30b0\u3055\u308c\u3001\u7d50\u679c\u306b\u542b\u307e\u308c\u307e\u3059\u3002<br \/>\n&nbsp;<br \/>\n\u3053\u306e\u305f\u3081\u3001<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 LEFT OUTER JOIN table2 USING(id) WHERE table2.id IS NOT NULL\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f\u3001<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 INNER JOIN table2 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u3068\u540c\u3058\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RIGHT OUTER JOIN: \u5916\u90e8\u7d50\u5408<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\nLEFT OUTER JOIN \u306e\u5de6\u53f3\u306e\u610f\u5473\u3092\u5165\u308c\u63db\u3048\u305f\u3082\u306e\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 RIGHT OUTER JOIN table2 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table2 LEFT OUTER JOIN table1 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u3068\u540c\u3058\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CROSS JOIN: \u4ea4\u5dee\u7d50\u5408<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\nON, USING \u3067\u6761\u4ef6\u3092\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u3001\u5de6\u53f3\u306e\u30c6\u30fc\u30d6\u30eb\u306e\u76f4\u7a4d\u3092\u8fd4\u3057\u307e\u3059\u3002<br \/>\n\u3064\u307e\u308a\u3001\u5de6\u53f3\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u305d\u308c\u305e\u308c2\u884c\u306e\u30ec\u30b3\u30fc\u30c9\u30013\u884c\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001\u7d50\u5408\u7d50\u679c\u306f\u5168\u3066\u306e\u30ec\u30b3\u30fc\u30c9\u306e\u7d44\u5408\u305b\u306b\u306a\u308a\u5408\u8a08 2&#215;3=6 \u884c\u306e\u30ec\u30b3\u30fc\u30c9\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\nPostgreSQL \u3084 MySQL \u3067\u306f ON, USING \u3092\u6307\u5b9a\u3059\u308b\u3068 INNER JOIN \u3068\u7b49\u4fa1\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 CROSS JOIN table2\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f\u6b21\u306e SQL \u6587\u3068\u7b49\u4fa1\u3067\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1, table2\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305f\u3001PostgreSQL, MySQL \u3067\u306f<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 CROSS JOIN table2 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f\u6b21\u306e SQL \u6587\u3068\u7b49\u4fa1\u3067\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 INNER JOIN table2 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"a2\" href=\"#a0\">\u25a0<\/a>ON, USING, NATURAL\u306b\u3088\u308b\u7d50\u5408\u6761\u4ef6\u6307\u5b9a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\nCROSS JOIN \u3092\u306e\u305e\u304d\u3001JOIN \u53e5\u306b\u306f ON, USING, NATURAL \u306e\u3044\u305a\u308c\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">INNER JOIN &#8230; ON \u7d50\u5408\u6761\u4ef6<br \/>\nINNER JOIN &#8230; USING(\u7d50\u5408\u30ab\u30e9\u30e0, &#8230; )<br \/>\nNATURAL INNER JOIN &#8230;\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ON:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\nWHERE \u53e5\u3068\u540c\u3058\u66f8\u5f0f\u3067\u7d50\u5408\u6761\u4ef6\u3092\u7d5e\u308a\u8fbc\u3080\u3002<br \/>\n\u66f8\u5f0f:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT &#8230; FROM table1 JOIN table2 ON \u6761\u4ef6\u5f0f\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">table1, table2 \u306eid\u304c\u540c\u3058\u30ab\u30e9\u30e0\u540c\u58eb\u3092\u7d50\u5408\u3057\u305f\u3044\u5834\u5408\u306f\u6b21\u306e\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">AND, OR \u306a\u3069\u8907\u96d1\u306a\u6761\u4ef6\u3067\u7d5e\u308a\u8fbc\u3080\u4e8b\u3082\u53ef\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 AS t1 <br \/>\n&nbsp;&nbsp;LEFT JOIN table2 AS t2 ON (<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;(t1.id = t2.id OR t1.name = t2.name) <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;AND t1.salary &gt;= t2.age * 1000<br \/>\n&nbsp;&nbsp;)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">ON \u306b\u6307\u5b9a\u3059\u308b\u7d50\u5408\u6761\u4ef6\u306b\u306f\u3001 WHERE \u540c\u69d8\u3069\u3093\u306a\u6761\u4ef6\u5f0f\u3067\u3082\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u304c\u3001\u30c6\u30fc\u30d6\u30eb\u7d50\u5408\u306b\u95a2\u4fc2\u306e\u306a\u3044\u6761\u4ef6\u5f0f\u306fWHERE\u53e5\u306b\u66f8\u304f\u3088\u3046\u306b\u3057\u307e\u3057\u3087\u3046\u3002<br \/>\n&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">USING:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n\u30ab\u30e9\u30e0\u540d\u3067\u7d50\u5408\u6761\u4ef6\u3092\u7d5e\u308a\u8fbc\u3080\u3002<br \/>\n\u66f8\u5f0f:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT &#8230; FROM table1 JOIN table2 USING(\u30ab\u30e9\u30e01 , \u30ab\u30e9\u30e02, &#8230;)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e21\u65b9\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u540c\u3058\u30ab\u30e9\u30e0\u540d\u304c\u3042\u308b\u5834\u5408\u306b\u6709\u52b9\u3067\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 LEFT JOIN table2 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u3068\u540c\u7b49\u3067\u3059\u3002\u8907\u6570\u6307\u5b9a\u3057\u305f\u5834\u5408\u306f\u5168\u3066\u306e\u30ab\u30e9\u30e0\u306e\u5024\u304c\u4e00\u81f4\u3059\u308b\u30ec\u30b3\u30fc\u30c9\u3092\u7d50\u5408\u3057\u307e\u3059\u3002<br \/>\n&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">NATURAL:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n\u4e21\u65b9\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u6bd4\u8f03\u3057\u3066\u540d\u524d\u304c\u540c\u3058\u5168\u3066\u306e\u30ab\u30e9\u30e0\u3092\u7d50\u5408\u6761\u4ef6\u306b\u3057\u3066\u7d5e\u308a\u8fbc\u3080\u3002<br \/>\n\u66f8\u5f0f:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT &#8230; FROM table1 NATURAL JOIN table2\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">USING \u306b\u4e21\u30c6\u30fc\u30d6\u30eb\u306e\u5171\u901a\u30ab\u30e9\u30e0\u3092\u5168\u3066\u6307\u5b9a\u3057\u305f\u3082\u306e\u3068\u540c\u3058\u3067\u3059\u3002\u3059\u306a\u308f\u3061\u3001<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 NATURAL LEFT JOIN table2\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f\u3001\u4e21\u65b9\u306e\u30c6\u30fc\u30d6\u30eb\u306b id, name, age \u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u3001<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 LEFT JOIN table2 USING (id, name, age)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u3092\u6307\u5b9a\u3057\u305f\u306e\u3068\u540c\u7b49\u306e\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"a3\" href=\"#a0\">\u25a0<\/a>\u8907\u6570\u306eJOIN\u53e5\u3092\u7d44\u307f\u5408\u308f\u305b\u308b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\n3\u3064\u4ee5\u4e0a\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u8907\u6570\u306eJOIN \u53e5\u3067\u7d50\u5408\u3059\u308b\u4e8b\u3082\u3067\u304d\u307e\u3059\u3002<br \/>\n\u4f8b\u3068\u3057\u3066\u3001table1, table2. table3 \u5168\u3066\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u540c\u3058id\u304c\u5b58\u5728\u3059\u308b\u30ec\u30b3\u30fc\u30c9\u306e\u307f\u62bd\u51fa\u3059\u308b\u5834\u5408\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1<br \/>\n&nbsp;&nbsp;INNER JOIN table2 USING(id)<br \/>\n&nbsp;&nbsp;INNER JOIN table3 USING(id)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u8907\u6570\u306eJOIN \u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u6642\u306e\u7d50\u5408\u9806\u5e8f\u306f\u5de6\u304b\u3089\u9806\u306b\u8a55\u4fa1\u3055\u308c\u307e\u3059\u3002\u7d50\u5408\u9806\u5e8f\u3092\u5236\u5fa1\u3057\u305f\u3044\u5834\u5408\u3001\u30ab\u30c3\u30b3\u304c\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">SELECT * FROM table1 AS t1<br \/>\n&nbsp;&nbsp;LEFT JOIN ( table2 AS t2 INNER JOIN table3 USING(id)) ON t1.value = t2.tag<br \/>\n)\n<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u4f8b\u3067\u306f table2, table3\u306e\u540c\u3058id\u306e\u30ec\u30b3\u30fc\u30c9\u3092INNER JOIN \u53e5\u3092\u4f7f\u3044\u7d50\u5408\u3057\u3001\u305d\u306e\u5f8c table1 \u3068 LEFT JOIN \u53e5\u3067\u7d50\u5408\u3055\u308c\u307e\u3059\u3002<br \/>\n&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"a4\" href=\"#a0\">\u25a0<\/a>\u53c2\u8003:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\n&#8211; <a href=\"http:\/\/www.postgresql.jp\/document\/pg825doc\/html\/sql-select.html\">SELECT<\/a>(PostgreSQL 8.2.5 \u30de\u30cb\u30e5\u30a2\u30eb)<br \/>\n&#8211; <a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.1\/ja\/join.html\">MySQL 5.1 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30de\u30cb\u30e5\u30a2\u30eb 12.2.7.1 JOIN \u69cb\u6587<\/a>(MySQL AB)<br \/>\n&#8211; <a href=\"http:\/\/www.techscore.com\/tech\/sql\/06_04.html\">\u7279\u6b8a\u306a\u7d50\u5408\u6f14\u7b97\u5b50 SQL<\/a>(TELCHSCORE by 4DD)<br \/>\n&#8211; <a href=\"http:\/\/www.contrib.andrew.cmu.edu\/~shadow\/sql\/sql1992.txt\">SQL92<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"\/memo\/archives\/sql-join-shorthand.html\">SQL \u306e JOIN \u306f\u7701\u7565\u3067\u304d\u308b \u2014 INNER\/OUTER \u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u30ab\u30f3\u30de\u7d50\u5408\u306e\u6574\u7406<\/a><\/li>\n\n\n\n<li><a href=\"\/memo\/archives\/inner-join-left-join.html\">INNER JOIN \u3068 LEFT JOIN \u306e\u9055\u3044 \u2014 \u7d50\u679c\u304c\u3069\u3046\u5909\u308f\u308b\u304b\u5b9f\u4f8b\u3067\u78ba\u8a8d<\/a><\/li>\n\n\n\n<li><a href=\"\/memo\/archives\/oracle-join-syntax.html\">Oracle \u306e JOIN \u306e\u66f8\u304d\u65b9 \u2014 \u65e7\u8a18\u6cd5 (+) \u3068 ANSI \u69cb\u6587\u306e\u5bfe\u5fdc\u8868<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>(2026\u5e747\u6708\u3001\u5185\u5bb9\u3092\u5168\u9762\u7684\u306b\u66f4\u65b0) SQL \u3067\u30c6\u30fc\u30d6\u30eb\u3092\u7d50\u5408\u3059\u308b JOIN \u306b\u306f\u3001INNER JOIN\u30fbLEFT OUTER JOIN\u30fbRIGHT OUTER JOIN\u30fbFULL OUTER JOIN\u30fbCROSS J &hellip; <a href=\"https:\/\/www.ecoop.net\/memo\/archives\/2007-11-14-1.html\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">SQL \u306e JOIN \u306e\u7a2e\u985e\u3068\u9055\u3044\u307e\u3068\u3081 \u2014 INNER\/LEFT\/RIGHT\/FULL\/CROSS<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1251,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[135],"tags":[113,26,62,45,112,41],"class_list":["post-799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-linq","tag-mysql","tag-oracle","tag-postgresql","tag-sql-server","tag-sqlite"],"jetpack_featured_media_url":"https:\/\/www.ecoop.net\/memo\/wp-content\/uploads\/2007\/11\/NK9V9A9153_TP_V.jpg","_links":{"self":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/comments?post=799"}],"version-history":[{"count":3,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/799\/revisions"}],"predecessor-version":[{"id":1431,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/799\/revisions\/1431"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/media\/1251"}],"wp:attachment":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/media?parent=799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/categories?post=799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/tags?post=799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}