2012-04-01 38 views
5

tôi sẽ đơn giản hóa kịch bản của tôi - Tôi có những 2 bảng:Làm cách nào để đặt tên cho các ký tự đại diện trong cột MySQL?

table_A - id int, id_table_B_one int, id_table_B_two int, name varchar(30) 
table_B - id int, name varchar(30), description varchar(30) 

Sau đó, tôi có truy vấn này:

SELECT 
table_A.id, table_A.name, table_B_one.*, table_B_two.* 
FROM 
table_A 
LEFT JOIN table_B table_B_one ON table_A.id_table_B_one = table_B.id 
LEFT JOIN table_B table_B_two ON table_A.id_table_B_two = table_B.id 

Vấn đề của tôi là tôi sẽ nhận được 3 cột với cùng tên (id và Tên). Tôi biết tôi có thể sử dụng từ khóa 'AS' để chỉ định bí danh của một cột. Tuy nhiên, tôi sẽ cần phải chỉ định từng cột được chọn, nhưng tôi phải sử dụng ký tự đại diện '*'.

Có cách nào để đặt tên cột bí danh bằng ký tự đại diện '*' không? Một cái gì đó như thế này:.

... table_B_one * AS table_B_one_ * ...

+2

tại sao bạn cần sử dụng ký tự đại diện? bạn không thể chỉ ra tất cả các cột bạn muốn xem? – SingleNegationElimination

+0

Thay vì '*' hoặc 'bảng. *', Tốt nhất là phải rõ ràng về các cột bạn đang chọn. Liệt kê tất cả chúng trong câu lệnh 'SELECT'. –

+0

TokenMacGuy: Tôi cần, vì truy vấn SQL thực sự được tạo động. Như tôi đã nêu trong câu hỏi của tôi - nó rất đơn giản cho mục đích của câu hỏi này nhưng truy vấn và cách sử dụng của nó trong trường hợp của tôi phức tạp hơn nhiều – Frodik

Trả lời

2

Không, đó không phải là cách thiết lập bí danh bằng cách sử dụng ký tự đại diện. Bạn cần phải rõ ràng.

Nếu SQL của bạn được tạo động, thì chi phí (cho bạn) rõ ràng với tất cả bí danh cần thiết là cực kỳ nhỏ - chỉ cần tạo thế hệ bí danh chính xác vào mã tạo SQL.

Làm rõ ràng với các bí danh sẽ giúp khả năng đọc mã - đó là những bí danh ở đó. Tuy nhiên, tôi tò mò: tại sao bạn muốn bí danh nếu SQL của bạn được tạo động?

Các vấn đề liên quan