Tôi cố gắng để tìm thấy một lỗi trong một câu lệnh SQL khổng lồ (không phải của tôi) - Tôi đã cắt giảm rất nhiều của nó ra để làm cho nó có thể đọc được - thậm chí pared xuống nó vẫn ném lỗiSQL Duplicate tên cột lỗi
SELECT DISTINCT Profiles.ID
FROM
(select * from Profiles RIGHT JOIN FriendList ON (FriendList.Profile = 15237)
order by LastLoggedIn DESC) as Profiles
này trả về một lỗi
tên cột trùng lặp 'ID'
tôi đã thử nghiệm những phần cuối cùng (select * from Profiles ... order by LastLoggedIn DESC
) và nó hoạt động tốt bằng cách riêng của mình
Tôi đã cố gắng khắc phục sự cố bằng cách thay đổi tên cột trong phần DISTINCT mà không có bất kỳ sự may mắn nào.
Một giải pháp tôi đọc là xóa DISTINCT, nhưng điều đó không có tác dụng.
Tôi chỉ không thể biết được lỗi của cột trùng lặp có thể đến từ đâu. Nó có thể là một vấn đề toàn vẹn cơ sở dữ liệu?
Bất kỳ giúp nhiều đánh giá cao.
có cột id trong bảng hồ sơ xung đột với cột id của một bảng khác không? Bạn đang chọn tất cả các cột, tôi khuyên bạn nên giảm số lượng cột chọn (thay đổi * thành tên cột) và xem liệu cột đó có khắc phục được sự cố của bạn hay không. – Robert
Có thể là cả bảng 'Profiles' và' FriendList' trong 'SELECT' bên trong của bạn có cột' ID' ?? Vì vậy, về cơ bản bạn sẽ có hai cột, cả hai được gọi là 'ID' - và bạn đang chọn ** mọi thứ ** từ' JOIN' - vì vậy mà 'ID' là bạn đề cập đến khi bạn nói' SELECT DISTINCT Profiles.ID .. ... '?!?!? –
marc_s & Robert - vâng, đó là những gì đang diễn ra. Tôi đoán là nhiều nhưng đây chỉ là ngoài sự hiểu biết SQL của tôi. Vấn đề là câu lệnh SQL là MASSIVE và được xây dựng động.Tôi cắt nó thành xương trần cho câu hỏi này. Tôi sẽ quăng nó trở lại với người như những tác động gõ cửa của việc rối tung với điều này hoặc db quá khủng khiếp để suy ngẫm. – Steve