web-dev-qa-db-fra.com

Que fait sql_select = "e. *"?

On https://docs.joomla.org/SQL_form_field_type il parle de l'utilisation des champs SQL.

Je me demande quoi sql_select="e.*" Est-ce que.

Je sais que l'étoile est un joker pour tout. Je ne suis tout simplement pas sûr de ce que fait le e (ma première hypothèse serait une évasion).

Quelqu'un peut-il me renseigner?

Voici le code complet:

<field
    name="example_group" 
    type="sql" 
    label="COM_EXAMPLE_GROUP" 
    sql_select="e.*" 
    sql_from="#__example AS e" 
    sql_group="name" 
    sql_order="e.id ASC" 
    key_field="id"
    value_field="name" 
    />
2
Eoin

Je suppose que l’exemple dont vous parlez est le suivant: "SELECT e. * FROM #__example AS e GROUP BY name ORDER e.id ASC"

Cela signifie fondamentalement que tout est sélectionné dans la table #__exemple (qui a un nom d’alias dans la requête de e) et groupé par nom et ordre par identifiant par ordre croissant.

si vous n'avez pas utilisé AS e dans la requête, vous deviez écrire la requête comme suit:

SELECT * from #__example GROUP BY ...

l'utilisation de AS e vous permet d'économiser quelques caractères à écrire lorsque vous effectuez des requêtes plus complexes avec beaucoup de jointures, etc.

Vous pouvez consulter cette ressource pour plus d’informations pour débutants sur mysql: https://www.thegeekstuff.com/2013/09/mysql-select-command/

5
Daniel Dimitrov

Lorsque vous ne faites référence qu'à une table dans votre requête, il n'est pas nécessaire de référencer explicitement la table lors de l'écriture de colonnes. En outre, la direction par défaut pour SQL est ASC.

Donc, votre syntaxe pourrait être simplifiée pour:

<field
name="example_group" 
type="sql" 
label="COM_EXAMPLE_GROUP" 
sql_select="id, name" 
sql_from="#__example" 
sql_group="name" 
sql_order="id" 
key_field="id"
value_field="name" 
/>

Pas d'alias de table, pas de références de table excédentaires, pas de sens de tri - SQL se comportera comme prévu par défaut.

Je peux seulement imaginer que la page de documentation est en train d’être commentée pour les développeurs qui peuvent essayer des requêtes plus complexes ou pour les développeurs qui ne comprennent pas parfaitement le fonctionnement des requêtes SQL par défaut.

En règle générale, lorsque vous connaissez la ou les colonnes à partir desquelles vous souhaitez extraire des données, vous devez explicitement nommer la ou les colonnes dans la clause select. De cette façon, votre intention de codage est claire et votre base de données n'a pas besoin de travailler plus que nécessaire.

3
mickmackusa