MYSQL|选择两个表之间的倒数

标签 mysql sql select

我想从一个表中选择与另一个表具有不同值的记录。

表 1。

+--------+-------+
| userID | tagID |
+--------+-------+
|      1 |     2 |
|      1 |     3 |
|      1 |     4 |
+--------+-------+

表 2。

+---------+-------+
| ChaName | tagID |
+---------+-------+
| Hello   |     1 |
| How     |     2 |
| Are     |     3 |
| You     |     4 |
| Today   |     5 |
| Guys    |     6 |
| ?       |     7 |
+---------+-------+

然后应该是

+--------+-------+---------+
| userID | tagID | chaNAME |
+--------+-------+---------+
|      1 |     1 | Hello   |
|      1 |     5 | Today   |
|      1 |     6 | Guys    |
|      1 |     7 | ?       |
+--------+-------+---------+

看起来很简单,但我找不到解决的方法。
谢谢大家的回答<3

PS。顺便说一句,我尝试使用“not in”,但出现错误

Unrecognized keyword. (near "not in" at position 92)

最佳答案

要获取输出,您需要使用外部联接左连接将为您提供左表table2中的所有记录以及右表table1中的匹配记录。这意味着 table1 中的记录在 table2 中不存在,您将获得 null。您可以在 where 子句中使用此属性来仅获取您期望的记录。

此外,您无法决定 table2 中记录的 userid。如果您想将它们硬编码为 1,请在 select 子句中使用 select 1 as userid, ...

SQLFiddle Demo

select t2.tagid,t2.chaname
 from
table2 t2 left join table1 t1
on t1.tagid=t2.tagid
where t1.tagid is null

关于MYSQL|选择两个表之间的倒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837262/

相关文章:

mysql - 将人员的位置链接到人员 SQL

SQL 选择数组中的所有内容

ruby-on-rails - 如何为 f.select 表单字段设置空白值

php - 我的 Web 服务不工作 PHP/MYSQL/JSON

mysql - MySQL中 'Default Database'的含义

mysql - select 语句中的子选择返回 null

mysql - 根据 MySQL 8 中前一行的值更新行

java - 期待关闭,在第 1 行附近发现 'WHEN' 异常?如何在 HIbernate 中摆脱它

mysql 在一个范围内搜索 min(date)

mysql - 计算实例的数量,并将它们放入一列中,同时按另一列进行分组