我有两个Mysql表:
A(用户表):
id用户名房间
1 User1 1
2 User2 1
3 User3 1
B(被阻止的用户):
id username
1 User3
我的请求在这里(我想得到User1和User2,因为User3在块中):
SELECT A.id, A.username FROM `table1` A, `table2` B
WHERE A.roomid = 1 AND A.username != B.username
但这是错误的要求。谢谢
您需要join
两个表A&B类
SELECT A.id, A.username FROM `table1` A
JOIN `table2` as B ON `table1`.id = `table2`.id
WHERE A.room = 1 AND A.username != B.username
或者你的列名是room
而不是像那样的roomid
SELECT A.id, A.username FROM `table1` A, `table2` B
WHERE A.room = 1 AND A.username != B.username
SELECT A.id, A.username,B.id,B.username FROM `table1` A, `table2` B
WHERE A.roomid = 1 AND A.username != B.username
在表A中,ID是什么意思?是用户名的id吗
在表B中,ID是什么意思?
您必须使用sqljoin来获得预期输出。但要做到这一点,您需要在两个表中都有一个公共键。根据你的表示例,我认为ID不是公共密钥,你只需要使用它。但如果我错了,你可以使用内部联接来联接这两个表,同时获得ID作为公共密钥。