Я пытаюсь найти ошибку в массивном заявлении SQL (не мое) - я вырезал много его, чтобы сделать его доступным для чтения - даже урезанный до сих пор бросает ошибкуSQL Дубликат имя столбца ошибка
SELECT DISTINCT Profiles.ID
FROM
(select * from Profiles RIGHT JOIN FriendList ON (FriendList.Profile = 15237)
order by LastLoggedIn DESC) as Profiles
Это возвращает ошибку
Дубликат имя столбца «ID»
Я протестировал последнюю часть (select * from Profiles ... order by LastLoggedIn DESC
) и она отлично работает сама по себе
Я попытался устранить неполадки, изменив имена столбцов в разделе DISTINCT без везения.
Одним из решений, которое я прочитал, было удаление DISTINCT, но это не помогло.
Я просто не вижу, откуда может возникать ошибка повторяющегося столбца. Может ли быть проблемой целостности базы данных?
Любая помощь очень ценится.
Есть ли столбец идентификатора в таблице профилей, который противоречит столбцу идентификатора другой таблицы? Вы выбираете все столбцы, я бы рекомендовал уменьшить количество выбранных столбцов (изменить * на имена столбцов) и посмотреть, устраняет ли это вашу проблему. – Robert
Не может быть, что таблица 'Profiles' и' FriendList' в вашем внутреннем 'SELECT' имеет столбец' ID'? Таким образом, у вас будет в основном два столбца, оба называются 'ID', и вы выбираете ** все ** из этого' JOIN', поэтому в качестве идентификатора вы указываете, когда вы говорите 'SELECT DISTINCT Profiles.ID .. ... '?!?!? –
marc_s & Robert - да, это то, что происходит. Я догадался, но это выходит за рамки моего понимания SQL. Проблема в том, что оператор SQL является MASSIVE и динамически создается.Я разрезал его на голые кости для этого вопроса. Я собираюсь подбросить его обратно человеку, поскольку удары по эффекту возиться с этим или с db слишком ужасны, чтобы созерцать. – Steve