2010-09-05 1 views
12
SELECT var1,var2,var3,table_name 
FROM table1 LEFT JOIN table_name on var3=table_name.id 

Significato voglio lasciato dinamicamente unirsi tavolo, a seconda del valore della table_name da table1, dal momento che var3 è preso da lì.query MySQL utilizzando variabile come nome della tabella in LEFT JOIN

Ma i risultati della query di cui sopra in

tabella nome_tabella non esiste

Il mio errore di limitazione mysql?

+0

Non penso che si possa fare questo. Probabilmente dovrai passare il nome della tabella in una stored procedure se desideri questo tipo di funzionalità o riprogettare ciò che stai cercando di fare. – spig

+1

Non è una limitazione di MySQL. Più come la limitazione SQL, se puoi chiamarla così, ma direi piuttosto, è un'indicazione che qualcosa non va nella progettazione del tuo database. – Mchl

+0

La tabella principale contiene oggetti. Ogni oggetto può avere attributi. Ci sono tabelle separate per ogni attributo che elenca i valori possibili - i valori possono essere molto lunghi (diverse centinaia di caratteri) e ci sono molti valori possibili (migliaia). Quindi la tabella principale ha 2 campi per attributo: attr_table_name, attr_table_id - per risparmiare spazio e per consentire la modifica del nome dell'attributo. Quando si esegue una query, restituisco il valore dell'attributo effettivo, non l'ID, ecco perché ho bisogno di SINISTRA SINISTRO e denominazione di tabelle dinamiche. In quale altro modo si progetterà il DB? – selytch

risposta