Aller au contenu

Comprends pas les p. dans les requêtes SQL


Sujets conseillés

Posté

Salut à tous,

En voulant modifier la requête du moteur de recherche sur un site, je me rends compte que j'ai quelques lacunes en SQL :

SELECT COUNT(p.`id_product`) AS nb			  FROM `ps_product` p			  LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 2)							WHERE `active` = 1							AND   				MATCH (pl.`name`, `description`, `description_short`, `ean13`)				  AGAINST ('poissons*' IN BOOLEAN MODE)

A quoi correspondent les "p" comme dans (p.`id_product`) ? Un site sur lequel je pourrai creuser cette histoire :) ?

Posté (modifié)

OK le 'As' est un alias mais cela ne m'explique pas pourquoi il y a un 'p'

De plus à quoi sert le

...<span class="postcolor">pl ON</span>...

de la 1ere ligne... :)

Merci pour ton coup de main !

Modifié par dldstyle
Posté

Ok, je recommence :)

Dans ton cas, c'est un 'p' mais cela pourrait être un 'j' ou 'ma_table' ou 'mon_super_alias_de_table_qui_est_super_long' ...

Concernant la première ligne, c'est une jointure... donc, admettons que j'ai 2 tables "table_1" et "table_2". Elles ont pour champ en commun le chp 'ID' (je fais simple)

Je veux utiliser les alias "T1" et "T2" pour gagner du temps...

La requête pour interroger les deux tables sera :

select T1.ID, T2.Nom from Table_1 T1 inner join Table_2 T2 on T1.ID = T2.ID

Mais cette requete sera exactement la même :

select Table_1.ID, Table_2.Nom from Table_1 inner join Table_2 on Table_1.ID = Table_2.ID

Et voilà :)

Portekoi

Posté

Bonjour,

Comme te l'explique Portekoi, ca te permet de renommer une table.

En général, on lui donne un nom plus court, soit pour coder plus vite, soit pour utiliser 2 tables identiques dans la même requète, tout en leur donnant des noms différents.

Nico.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...