首页 > 解决方案 > 这个加入可能吗?

问题描述

我有几张看起来像这样的桌子。

table_a     |   table_b
-------------------------
prim_key    |   prim_key
zero_or_one |   value1
valueA      |   value2
valueB      |   value3
valueZ      |

如果每个表的主键匹配并且in的值为is ,我希望做的是从中检索所有值(prim_key, value1, value2, value3)。TABLE Bzero_or_oneTABLE A0

我对 完全陌生joins,我不确定我应该为此使用哪个连接,但似乎 aFULL OUTER JOIN最合适。

SELECT table_b.*
FROM table_a
FULL OUTER JOIN table_b
ON table_a.prim_key = table_b.prim_key

这甚至可能吗?

我是否使用了正确的加入来完成这项工作?

我的“全选”语法正确吗?

标签: mysqldatabasejoinmysql-5.6

解决方案


因为只有在;table_b中找到匹配的主键时才需要条目。table_a在这种情况下,一个简单的Inner Join就足够了

SELECT table_b.*
FROM table_b
INNER JOIN table_a
  ON table_a.prim_key = table_b.prim_key AND 
     table_a.zero_or_one = 0

推荐阅读