Avoir une table sans index ni clé primaire ralentit assez considérablement les requêtes de sélection (SELECT), le gain obtenu au niveau de la taille des index n'est certainement pas suffisant pour contrebalancer, à moins qu'il y ait en permanence plus d'écritures que de lecture dans cette table.
Pour la requête 1, il faut utiliser un NOT IN avec une sous-requête;
...
FROM t
WHERE t.champ1 NOT IN(
SELECT DISTINCT(t0.champ1)
FROM t0
)
...
Pour la seconde, deux lignes dans le ON d'une jointure devrait faire l'affaire :
...
FROM t
INNER JOIN t0 ON t.champ1 = t0.champ1
AND t.champ2 <> t0.champ1
...
______________________________________________________________
Une question bien formulée, c'est un problème bien compris : ça représente déjà les 3/4 de la réponse ;)