Q:

Problema com LEFT JOIN no PHP

Olá, amigos.
Tenho 3 tabelas no meu banco mysqli para registrar o acesso a determinado local:

visitante, cujos dados sempre serão preenchidos.
corporativo, cujos dados serão preenchidos apenas se o visitante representar uma empresa.
veiculo, cujos dados serão preenchidos se o visitante vier de carro.

Ao fazer uma busca para retornar todos os resultados, utilizo a seguinte query:
SELECT * 
FROM `visitante` 
LEFT JOIN `corporativo` ON `corporativo`.`id_visitante` = `visitante`.`id_visitante` 
LEFT JOIN `veiculo` ON `veiculo`.`id_visitante` = `visitante`.`id_visitante` 
WHERE `visitante`.`entrada` LIKE '%$data%' OR `visitante`.`status` LIKE '%Aberto%' 
GROUP BY `visitante`.`id_visitante` 
ORDER BY `visitante`.`entrada`;

O que acontece é que nos registros onde não tenho dados do visitante corporativo ou dados do veículo, ele retorna minha id.visitante como NULL.
Acho que é algum problema do PHP pois ao fazer essa query no phpmyadmin, ele retorna todos os dados normalmente.
Alguém tem alguma sugestão???
Obrigado.

A:

Tente criar aliases para a coluna id na tabela visitante, ou então mudar o nome. Se nas tabelas envolvidas existem várias colunas com o mesmo nome (id_visitante) ele pode estar 'escolhendo' as últimas (corporativo.id_visitane, veiculo.id_visitante) que de fato estão vazias e acabam sobrescrevendo o valor da primeira (visitante.id_visitante). 
Lembre-se que você não precisa trazer três vezes o valor do id_visitante 
O ideal seria algo assim:
(Apenas um exemplo)
SELECT 
    visitante.id as id_visitante
    , visitante.nome
    , corpoartivo.empresa
    , veiculo.placa
FROM
    visitante 
    LEFT JOIN corporativo ON corporativo.id_visitante = visitante.id
    LEFT JOIN veiculo ON veiculo.id_visitante = visitante.id

