MYSQL |选择2个表

时间:2016-03-07 06:10:39

标签: 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。顺便说一句,我试过使用'不在'但它出错了

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

2 个答案:

答案 0 :(得分:0)

ans = matrix[0][0]
for x in range(len(matrix)):
    for y in range(len(matrix[0])):
        ans = max(ans, matrix[x][y])
return ans

答案 1 :(得分:0)

要获得输出,您需要使用outer joinleft join将为您提供左表table2中的所有记录,并仅显示右表table1中的匹配记录。这意味着您将获得nulltable1中不存在table2中的记录的where。您可以在userid子句中使用此属性来仅获取预期的记录。

此外,您无法对table2中的记录1做出决定。如果您想将它们硬编码为select 1 as userid, ...,请在select子句中使用select t2.tagid,t2.chaname from table2 t2 left join table1 t1 on t1.tagid=t2.tagid where t1.tagid is null

SQLFiddle Demo

{{1}}