2011-09-24 3 views
0

Est-il possible de combiner la syntaxe * avec les abréviations de table?Comment combiner la syntaxe asterix avec les abréviations de table

Je veux faire quelque chose comme:

"SELECT subfunds.* FROM subfunds S" + 
" INNER JOIN funds F ON S.id_fund = F.id" + 
" WHERE F.fund_short IN('" + stSQLFundList + "')" 

Le code ci-dessus obtient une erreur de syntaxe

« référence non valide à l'entrée FROM-clause pour la table "sous-fonds"

.

J'ai déjà trouvé que si je le fais

"SELECT * FROM subfunds S" + 
" INNER JOIN funds F ON S.id_fund = F.id" + 
" WHERE F.fund_short IN('" + stSQLFundList + "')" 

puis j'obtiens tous les champs des deux tables plutôt que de la table des sous-fonds seulement.

Alors, comment puis-je obtenir tous les champs de la première table (et aucun des champs des autres tables) dans mon ensemble de réponses tout en étant capable d'utiliser les abréviations de table à une lettre?

+2

Google "SQL Injection Attack" –

+1

Si vous utilisez un ** alias ** table, vous devez vous référer aux colonnes que vous voulez utiliser cet alias - donc utilisez 'SELECT s. * FROM sous-fonds s ....' –

+0

Merci, ça a marché! – user962915

Répondre

1

Changez votre code pour cela et vous obtiendrez tous les champs des compartiments.

"SELECT S.* FROM subfunds S" + 
" INNER JOIN funds F ON S.id_fund = F.id" + 
" WHERE F.fund_short IN('" + stSQLFundList + "')" 

Si vous utilisez un alias, vous souhaitez référencer cette table par son alias.

+0

Merci, ça a marché! Je pourrais jurer j'ai essayé cette variante, mais peut-être un autre aspect de la syntaxe était différent ... – user962915

+0

si cela a fonctionné, assurez-vous que vous acceptez la réponse. :) – Taryn

Questions connexes