我有两张桌子;在一张桌子上,我有人的信息,在另一张桌子里,我有人的战斗。
澄清我的意思:
persons_information
username
--------
abc
anne
hansgerman
tester
trudiname
hoodie
gabriel
timo
marco
aharon
leandro
hans
benutzer
andreas
战斗
challenger opponent
----------------------
tester hansgerman
tester trudiname
我想要的是,让表1中所有未被提及为表2中的测试对手的人。
答案 0 :(得分:0)
尝试此查询:
select distinct * from persons
left join on battles persons.username=battles.opponent
where battles.opponent is null
答案 1 :(得分:0)
我明白了:
SELECT profile.username FROM profile, vs where vs.challenger != "tester" AND vs.oponnent NOT LIKE profile.username
答案 2 :(得分:-1)
试试这个:
select persons.username
from persons, battles
where battles.opponent = persons.username AND battles.challenger != 'tester';
新代码,这应该返回人员表中未出现在战斗表中的所有用户,以及战斗表中没有测试人员作为他们的挑战者的任何用户。
SELECT username
FROM persons
WHERE NOT EXISTS
(
SELECT username
FROM battles
where battles.challenger == 'tester' and battles.username == persons.username
)