Error: discrepancias en el recuento de columnas en declaraciones SELECT
Al ejecutar una consulta que implique varias declaraciones SELECT, como una operación UNION, es imperativo para garantizar que cada declaración contenga exactamente el mismo número de columnas. De no hacerlo, se producirá el error "Error: las declaraciones SELECT utilizadas tienen un número diferente de columnas".
Para resolver este problema, es necesario reescribir la consulta de manera que cada cláusula SELECT tenga un número idéntico de columnas con tipos de datos compatibles. Por ejemplo, la consulta proporcionada:
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.fid1sufre este error ya que el primer SELECT contiene 4 columnas ("", u1., u2.*), mientras que el segundo SELECT solo devuelve una sola columna ("fid2 ").
Una reescritura más sencilla que conserva la funcionalidad prevista es:
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.fid1Al asegurarse de que ambas declaraciones SELECT devuelvan el mismo número de columnas con tipos de datos coincidentes, la consulta se puede ejecutar sin encontrar el error de recuento de columnas. Además, elimina las uniones externas innecesarias, que parecen redundantes según el esquema proporcionado.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3