Ciao a tutti
Vorrei ridurre a una sola query questa richiesta SQL:
codice:// recupera, dato l'id, l'id del tipo di locale $infoSQL = "SELECT tipo FROM locali WHERE id = ".$id; $info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error()); $info_array = mysql_fetch_assoc($info_query); $info = $info_array['tipo']; // recupera, dato l'id del tipo, il nome della tabella al quale si riferisce $infoSQL = "SELECT tabella FROM tipi WHERE id = ".$info; $info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error()); $info_array = mysql_fetch_assoc($info_query); $info = $info_array['tabella']; // recupera, dato id e tabella, le informazioni sul locale $infoSQL = "SELECT * FROM ".$info." WHERE id = ".$id; $info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error()); $info_array = mysql_fetch_assoc($info_query);
Sono riuscito a ridurla a 2 query in questo modo:
Purtroppo non riesco a ridurla ulteriormente, dato che non posso scrivere:codice:$infoSQL = "SELECT tabella FROM tipi WHERE id = (SELECT tipo FROM locali WHERE id = ".$id.")"; $info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error()); $info_array = mysql_fetch_assoc($info_query); $infoSQL = "SELECT * FROM ".$info_array['tabella']." WHERE id = ".$id; $info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error()); $info_array = mysql_fetch_assoc($info_query);
"SELECT * FROM ( SELECT tabella FROM tipi WHERE id = (SELECT tipo FROM locali WHERE id = ".$id." ) WHERE id = ".$id
altrimenti SQL cerca in una tabella inutile, mentre dovrebbe prendere il nome della tabella...
Any ideas?
Grazie!


Rispondi quotando