我想从表中选择与另一个表具有不同值的记录。
表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)
答案 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 join
。 left join
将为您提供左表table2
中的所有记录,并仅显示右表table1
中的匹配记录。这意味着您将获得null
中table1
中不存在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}}