【发布时间】:2015-07-18 00:53:39
【问题描述】:
我有两个表格,其中包含旧格式和新格式的用户。我想将旧格式的用户匹配到一个单独的表中,然后排除所有也出现在新用户格式表中的用户。我的数据是这样的:
Table newUsers:
+----+-------+-------+----------+
| id | oldid | first | last |
+----+-------+-------+----------+
| 1 | 10 | John | Kennedy |
| 2 | 66 | Mitch | Kupchak |
+----+-------+-------+----------+
Table posts:
+----+---------+
| id | user_id |
+----+---------+
| 1 | 10 |
| 1 | 66 |
| 1 | 88 |
| 2 | 88 |
| 2 | 28 |
| 3 | 10 |
+----+---------+
Table oldUsers:
+----+----------+-------+----------+
| id | username | first | last |
+----+----------+-------+----------+
| 10 | A | John | Kennedy |
| 66 | B | Mitch | Kupchak |
| 88 | C | Dale | Earnhardt|
+----+----------+-------+----------+
Result wantend:
+----+----------+-------+----------+
| id | username | first | last |
+----+----------+-------+----------+
| 88 | C | Dale | Earnhardt|
+----+----------+-------+----------+
我想通过指定来选择我的结果:posts.id = 1 和 posts.user_id = oldUsers.id 和 newUsers.oldid != oldUsers.id 以便我只收到 oldUser.id 等于 88 因为他不在newUsers 列表。
我尝试过各种 JOINS 和 SUBQUERIES。我不断得到所有结果,而不是结果减去 newUsers 表中的相应条目。
【问题讨论】:
标签: mysql select join subquery