2012-04-01 7 views
5

io semplificare il mio scenario - Ho questi 2 tabelle:Come denominare le colonne di selezione dei caratteri jolly in 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) 

Poi ho questa query:

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 

mio problema è che mi metterò 3 colonne con gli stessi nomi (id e nome). So che posso usare la parola chiave 'AS' per specificare l'alias di una colonna. Tuttavia, dovrei specificare ciascuna colonna selezionata, ma devo usare il carattere jolly '*'.

C'è un modo come può impostare il nome della colonna dell'alias con il carattere jolly '*'? Qualcosa di simile a questo:.

... table_B_one * AS table_B_one_ * ...

+2

perché è necessario utilizzare i caratteri jolly? non puoi semplicemente spiegare tutte le colonne che vuoi vedere? – SingleNegationElimination

+0

Invece di '*' o 'table. *', Meglio essere espliciti sulle colonne che state selezionando comunque. Elencali tutti nell'istruzione 'SELECT'. –

+0

TokenMacGuy: È necessario, poiché la query SQL è in realtà generata dinamicamente. Come ho affermato nella mia domanda - è molto semplificato per lo scopo di questa domanda ma la query e il suo utilizzo nel mio caso è molto più complesso – Frodik

risposta

2

No, non c'è un modo in cui impostare alias utilizzando un carattere jolly. Devi essere esplicito.

Se il tuo SQL viene generato dinamicamente, il costo (per te) di essere esplicito con tutti gli alias necessari è estremamente ridotto - basta inserire la generazione degli alias corretti nel codice che genera l'SQL.

Essere espliciti con gli alias aiuterà la leggibilità del codice, che è a cosa servono gli alias. Tuttavia, sono curioso: perché vuoi gli alias se il tuo SQL è generato dinamicamente?