Tôi đã một bảng cũ như thế này:Làm thế nào để tham gia bảng mysql
user> id | name | address | comments
Và bây giờ tôi đã tạo ra một "bí danh" bảng để cho phép một số người dùng có một cái tên bí danh cho một số lý do. Tôi đã tạo một bảng 'user_alias' mới như thế này:
user_alias> name | user
Nhưng bây giờ tôi có một vấn đề do mức SQL nghèo của tôi ... Làm thế nào để tham gia cả hai bảng để tạo ra một cái gì đó như thế này:
1 | my_name | my_address | my_comments
1 | my_alias | my_address | my_comments
2 | other_name | other_address | other_comments
Ý tôi là, tôi muốn thực hiện một truy vấn "SELECT ..." trả về trong các định dạng tương tự như bảng "user" TẤT CẢ người dùng và TẤT CẢ alias .. một cái gì đó như thế này:
SELECT user.* FROM user LEFT JOIN user_alias ON `user`=`id`
nhưng nó doesn 't làm việc cho tôi ..
Hoàn hảo! Đây là giải pháp. Tôi không biết nếu điều này là tốt nhất, nhưng nó hoạt động! Chỉ một sai lầm nhỏ: CHỌN người dùng.name, user.address, user.comment TỪ người dùng UNION ALL SELECT user_alias.alias, user.address, user.comment TỪ người dùng INNER JOIN user_alias trên user.id = user_alias. người dùng ORDER BY name – Ivan
Ồ, tôi thấy THAM GIA của bạn ngay bây giờ. Bạn nên đổi tên user_alias.user thành user_alias.user_id để làm cho nó rõ ràng hơn những gì đang diễn ra. –