Erro: discrepâncias na contagem de colunas em instruções SELECT
Ao executar uma consulta envolvendo várias instruções SELECT, como uma operação UNION, é imperativo para garantir que cada instrução contenha exatamente o mesmo número de colunas. Não fazer isso resultará no erro "Erro: as instruções SELECT usadas têm um número diferente de colunas".
Para resolver esse problema, a consulta precisa ser reescrita de forma que cada cláusula SELECT tenha um número idêntico de colunas com tipos de dados compatíveis. Por exemplo, a consulta fornecida:
SELECT * FROM friends LEFT JOIN users AS u1 ON users.uid = friends.fid1 LEFT JOIN users AS u2 ON users.uid = friends.fid2 WHERE (friends.fid1 = 1) AND (friends.fid2 > 1) UNION SELECT fid2 FROM friends WHERE (friends.fid2 = 1) AND (friends.fid1sofre deste erro porque o primeiro SELECT contém 4 colunas ("", u1., u2.*), enquanto o segundo SELECT retorna apenas uma única coluna ("fid2 ").
Uma reescrita mais direta que preserva a funcionalidade pretendida é:
SELECT f.*, u.* FROM FRIENDS AS f JOIN USERS AS u ON u.uid = f.fid2 WHERE f.fid1 = 1 AND f.fid2 > 1 UNION SELECT f.*, u.* FROM FRIENDS AS f JOIN USERS AS u ON u.uid = f.fid1 WHERE f.fid2 = 1 AND f.fid1Ao garantir que ambas as instruções SELECT retornem o mesmo número de colunas com tipos de dados correspondentes, a consulta pode ser executada sem encontrar o erro de contagem de colunas. Além disso, elimina junções externas desnecessárias, que parecem redundantes com base no esquema fornecido.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3