SELECT var1,var2,var3,table_name
FROM table1 LEFT JOIN table_name on var3=table_name.id
Có nghĩa là tôi muốn tự động rời tham gia bảng, tùy thuộc vào giá trị của table_name
từ table1
, vì var3
được lấy từ đó.MYSQL truy vấn sử dụng biến như tên bảng trong LEFT JOIN
Nhưng kết quả truy vấn trên trong
bảng tên_bảng không tồn tại
sai lầm của tôi về giới hạn mysql?
Tôi không nghĩ bạn có thể làm điều này. Bạn có thể sẽ cần phải chuyển tên bảng vào một thủ tục được lưu trữ nếu bạn muốn loại chức năng này hoặc thiết kế lại những gì bạn đang cố gắng làm. – spig
Nó không phải là một hạn chế của MySQL. Giống như giới hạn SQL nếu bạn có thể gọi nó, nhưng tôi wuold thay vì nói, đó là một dấu hiệu cho thấy có gì đó sai với thiết kế cơ sở dữ liệu của bạn. – Mchl
Bảng chính chứa các đối tượng. Mỗi đối tượng có thể có các thuộc tính. Có các bảng riêng biệt cho từng thuộc tính liệt kê các giá trị có thể có - các giá trị có thể rất dài (vài trăm ký tự) và có nhiều giá trị có thể (hàng nghìn). Vì vậy, bảng chính có 2 trường cho mỗi thuộc tính: attr_table_name, attr_table_id - để tiết kiệm không gian và cho phép sửa đổi tên thuộc tính. Khi truy vấn được chạy, tôi trả về giá trị thuộc tính thực tế, không phải id, đó là lý do tại sao tôi cần LEFT JOIN và đặt tên bảng động. Bạn thiết kế DB khác như thế nào? – selytch