【发布时间】:2016-07-12 19:55:07
【问题描述】:
如果我只想在第二张表上存在记录时才进行 INNER JOIN 是否有可能,如果不存在则不加入?
这是我的桌子
用户表
+--------+--------------+
| id | name |
+--------+--------------+
| 1 | John |
+--------+--------------+
| 2 | Josh |
+--------+--------------+
房子桌子
+--------+-------------+--------------+
| id | owner_id | house_no |
+--------+-------------+--------------+
| 1 | 1 | 991 |
+--------+-------------+--------------+
这是我的 INNER JOIN 查询
SELECT h.owner_id, u.name, h.house_no FROM user u
INNER JOIN house h on u.id = h.owner_id
WHERE u.id = :id
如果id = 1会返回这个结果
+--------+--------------+--------------+
| id | name | house_no |
+--------+--------------+--------------+
| 1 | John | 991 |
+--------+--------------+--------------+
但如果我使用id = 2 运行,则不会返回任何结果。
我现在想要做的是即使在表屋中不存在id = 2 的数据时它仍然返回结果
【问题讨论】:
-
这正是
inner join的工作原理。仅匹配行。 -
哦,我明白了。我不知道。谢谢!
标签: sql sql-server database inner-join