mysql - 这个加入可能吗?
问题描述
我有几张看起来像这样的桌子。
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 B
zero_or_one
TABLE A
0
我对 完全陌生joins
,我不确定我应该为此使用哪个连接,但似乎 aFULL OUTER JOIN
最合适。
SELECT table_b.*
FROM table_a
FULL OUTER JOIN table_b
ON table_a.prim_key = table_b.prim_key
这甚至可能吗?
我是否使用了正确的加入来完成这项工作?
我的“全选”语法正确吗?
解决方案
因为只有在;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
推荐阅读
- python - 如何使用 python 复制 ssh-keygen 的功能
- bash - Bash Script 转义命令字符串以使用变量作为文件名
- ios - 糟糕地生成了一个单元格视图。第一个元素显示正确,其余元素错误
- sql - group by and select non null value if present
- firebase - 使用上个月的首次用户 ID 加入唯一的用户 ID
- android - 识别.so文件源库
- python - 用干净的代码和最佳实践替换 if 语句
- javascript - List.js 列表中的项目在排序时消失
- google-apps-script - 为什么这会以不同的时间间隔复制到新工作表?
- html - 如何将 JSON 内容转换为 HTML?