mysql - SQL 连接具有两种类型的元素表

标签 mysql sql database join

我有一个可以有两种类型的对象表:

对象:

id | name | type1 | type2 |
-------------------------
1  | bla  |   5   |   7   |

和类型表

类型:

id | name |
-----------
5  | typ5 |
7  | typ7 |

我如何像下面这样加入他们?

object.id | object.name | typename1 | typename2 |
------------------------------------------------

我尝试了以下操作,但每个对象获得了两行

SELECT objects.id,objetcs.name,types.name
from objects
INNER JOIN types
ON objects.type1=types._id OR objects.type2=types._id

最佳答案

您需要两个联接:

SELECT o.id, o.name, t1.name as name1, t2.name as name2
from objects o LEFT OUTER JOIN
     types t1
     ON o.type1 = t1._id LEFT OUTER JOIN
     types t2
     on o.type2 = t2._id;

关于mysql - SQL 连接具有两种类型的元素表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21071844/

相关文章:

php - 从获取的数据库结果中删除生成的 JSON 字符串中的额外双引号

java - JTable 的行过滤器

php - #1075 - 不正确的表定义;只能有一个自动列,并且必须将其定义为键

mysql - 如何安全地转义 R 中的引号以将文本提交给 SQL?

java - onChild已添加到 FirebaseRecyclerAdapter 中

MySQL Workbench EER 图更改表格颜色

mysql - 获取 friend 姓名的SQL表达式

SQLServer 2008 通用列类型

html - key在indexedDB中是什么意思?

java - AsyncTask 使应用程序崩溃