在表之间组合mysql查询结果

时间:2016-09-04 20:44:04

标签: php mysql phpmyadmin

我有两张桌子;在一张桌子上,我有人的信息,在另一张桌子里,我有人的战斗。

澄清我的意思:

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中的测试对手的人。

3 个答案:

答案 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
)