Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
boa tarde srs, tenho 3 tabelas(cadastro, grupo1,grupo2) e em cada uma das tabelas tenho informações sobre usuários(como a 'identidade' e "nome' da pessoa por exemplo). eis a questão: Eu qria listar as pessoas que estão na tabela "cadastro" mas n qria que aparecesse a pessoa se seu status estiver como removido (status='removido') na tabela grupo1 ou na tabela grupo2. eu sei que existe o comando not in mas n sei fazer com 3 tabelas com duas tabelas (cadastro e grupo1) ficaria assim:
<?php $sql = ("SELECT DISTINCT(identidade),nome FROM cadastro where identidade NOT IN
(SELECT identidade FROM grupo1 where status='removido') ORDER BY nome asc "). $res = mysql_query($sql). while($linha = mysql_fetch_array($res)){?> <td width='10%'><?php echo $linha['nome']. }?></td> mas se eu precisar listar a pessoa da tabela "cadastro" que n esteja com o status removido na tabela grupo 2 tb??? (tanto na tabela grupo1 ou na tabela grupo 2 que n apareça com status='removido')...Acho que um INNER JOIN pode da certo também.
SELECT DISTINCT(C.identidade), C.nome FROM cadastro AS C
INNER JOIN grupo1 AS G1
ON C.identidade = G1.identidade
INNER JOIN grupo2 as G2
ON C.identidade = G2.identidade
WHERE G1.status != 'removido' AND G2.status != 'removido'
ORDER BY C.nome ASC
Tente assim:
where (identidade not in(...grupo1...) AND identidade not in(...grupo2...))