Erreur : écarts dans le nombre de colonnes dans les instructions SELECT
Lors de l'exécution d'une requête impliquant plusieurs instructions SELECT, comme une opération UNION, il est impératif pour garantir que chaque instruction contient exactement le même nombre de colonnes. Si vous ne le faites pas, l'erreur « Erreur : les instructions SELECT utilisées ont un nombre différent de colonnes ».
Pour résoudre ce problème, la requête doit être réécrite de telle sorte que chaque clause SELECT ait un numéro identique. de colonnes avec des types de données compatibles. Par exemple, la requête fournie :
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.fid1souffre de cette erreur car le premier SELECT contient 4 colonnes ("", u1., u2.*), tandis que le second SELECT ne renvoie qu'une seule colonne ("fid2 ").
Une réécriture plus simple qui préserve la fonctionnalité prévue est :
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.fid1En garantissant que les deux instructions SELECT renvoient le même nombre de colonnes avec des types de données correspondants, la requête peut être exécutée sans rencontrer l'erreur de nombre de colonnes. De plus, il élimine les jointures externes inutiles, qui semblent redondantes d'après le schéma fourni.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3