我有两个表都有一行名称"键入"。它看起来像这样:
事件:
--------------------------------
| id | title | type |
--------------------------------
| 1 | EventNo1 | travel |
| 2 | EventNo2 | info |
| 3 | EventNo3 | travel |
| 4 | EventNo4 | sport |
| 5 | EventNo5 | info |
--------------------------------
类型:
--------------------------------
| id | type | label |
--------------------------------
| 1 | travel | xxx #1 |
| 2 | info | xxx #2 |
| 3 | sport | xxx #3 |
--------------------------------
如果" events.type"匹配" types.type"我想用类型中的标签扩展我的查询结果,所以它看起来像这样:
结合
-------------------------------------------
| id | title | type | label |
-------------------------------------------
| 1 | EventNo1 | travel | xxx #1 |
| 2 | EventNo2 | info | xxx #2 |
| 3 | EventNo3 | travel | xxx #1 |
| 4 | EventNo4 | sport | xxx #3 |
| 5 | EventNo5 | info | xxx #2 |
-------------------------------------------
我如何做到这一点?我假设我必须使用INNER / LEFT JOIN,但以下尝试不会给我任何行:
SELECT events.id, events.title, events.type, types.id, types.type, types.label
FROM events
INNER JOIN types
ON events.type = types.type
答案 0 :(得分:0)
您错过s
types.id
<强> SqlFiddle Demo 强>
SELECT events.id, events.title, events.type, types.id, types.type, types.label
FROM events
INNER JOIN types
ON events.type = types.type
<强>输出强>
| id | title | type | id | type | label |
|----|----------|--------|----|--------|--------|
| 1 | EventNo1 | travel | 1 | travel | xxx #1 |
| 2 | EventNo2 | info | 2 | info | xxx #2 |
| 3 | EventNo3 | travel | 1 | travel | xxx #1 |
| 4 | EventNo4 | sport | 3 | sport | xxx #3 |
| 5 | EventNo5 | info | 2 | info | xxx #2 |
答案 1 :(得分:0)
你错过了type.id。它应该是types.id。 此外,您需要删除type.id,因为根据ypur输出不需要。
SELECT events.id, events.title, events.type, types.type, types.label FROM events INNER JOIN types ON events.type = types.type
请更喜欢保存ID而不是使用类型,因为它有助于节省磁盘空间,而且id会自动增量,因此人为错误的可能性更小。