2010-10-11 3 views
2
SELECT `accounts`.`password` FROM accounts WHERE `accounts`.`user`='some_user' 

SELECT password FROM accounts WHERE user='some_user' 

Je suis un peu confus au sujet des deux. Je sais aussi loin que les résultats, il n'y a pas une chose différente entre les deux. Cependant, y a-t-il une raison de faire un chemin par rapport à l'autre? Je l'ai appris en deuxième, mais certains m'ont dit que la première façon était de le faire de façon «officielle».Mise en forme des requêtes SQL

Répondre

2

Vous aurez besoin d'utiliser le format table.field si vous effectuez un JOIN et devez l'utiliser pour désambiguïser deux champs avec des noms identiques dans différentes tables. Par exemple:

SELECT table1.name 
    FROM table1 
LEFT JOIN table1 ON table1.id = table2.id 
    WHERE table2.name='smith' 

En ce qui concerne l'aide de l'accent grave (`) va, vous en aurez besoin si vos tables ou des champs sont des mots réservés SQL tels que select, where, and, etc.

+0

+1 - Bon appel à mentionner des mots-clés réservés. – LittleBobbyTables

0

La seule différence est que vous ajoutez les noms de tables à la requête. Personnellement, j'aime faire cela pour les changements ultérieurs. Si vous deviez rejoindre plus tard une autre table contenant également un champ de mot de passe, la deuxième instruction aurait un nom de colonne ambigu.

0

Tant que vous comprenez quand vous devez qualifier colonnes avec des noms de table (lorsque plus d'une table est impliquée) et lorsque vous doit identificateur d'utilisation en citant (lorsque votre identifiant est un mot réservé au traitement du moteur SQL votre requête) alors je crois que c'est sûr et plus facile à lire pour utiliser votre version que la version complète et citée.