Ошибка: несоответствия в количестве столбцов в операторах SELECT.
При выполнении запроса, включающего несколько операторов SELECT, например операции UNION, это обязательно чтобы гарантировать, что каждый оператор содержит одинаковое количество столбцов. Невыполнение этого требования приведет к ошибке «Ошибка: используемые операторы SELECT имеют разное количество столбцов».
Чтобы решить эту проблему, запрос необходимо переписать таким образом, чтобы каждое предложение SELECT имело одинаковый номер. столбцов с совместимыми типами данных. Например, предоставленный запрос:
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.fid1страдает от этой ошибки, поскольку первый SELECT содержит 4 столбца («», u1., u2.*), а второй SELECT возвращает только один столбец («fid2 ").
Более простая перезапись, сохраняющая намеченную функциональность:
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.fid1Убедившись, что оба оператора SELECT возвращают одинаковое количество столбцов с совпадающими типами данных, запрос может быть выполнен без возникновения ошибки количества столбцов. Кроме того, он устраняет ненужные внешние соединения, которые кажутся избыточными на основании предоставленной схемы.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3