Ex sql drupal 7

Source: PDF iconcyprien_roudet_framabook_atelierdrupal7_cc-by_2-janvier_2012.pdf

users et roles

Afficher les permissions accordées au rôle «Rédacteur» :
SELECT role.name, role_permission.permission
FROM role
JOIN role_permission ON role.rid = role_permission.rid
WHERE role.name = "Rédacteur"

Afficher les rôles associés à l’utilisateur Benoit :
SELECT users.name, role.name
FROM users
JOIN users_roles ON users.uid = users_roles.uid
JOIN role ON role.rid = users_roles.rid
WHERE users.name = "Benoit"

Afficher les permissions de Benoit :
SELECT DISTINCT users.name, role_permission.permission
FROM users
JOIN users_roles ON users.uid = users_roles.uid
JOIN role ON role.rid = users_roles.rid
JOIN role_permission ON role.rid=role_permission.rid
WHERE users.name = "Benoit"

nodes

Afficher le titre de toutes les nodes et leur auteur :
SELECT title, users.name
FROM node
JOIN users ON node.uid=users.uid

Afficher le nombre de nodes par type :
SELECT type, count(*) AS "Nombre nodes"
FROM node
GROUP BY type

commentaires

a 2 clés étrangères, uid qui indique quel est l’auteur du commentaire et nid qui indique a quelle node se rattache le commentaire.
Le champ pid est également une clé étrangère de la table comment elle même qui indique quel est le commentaire (cid) parent (dans le cas ou les commentaires sont hiérarchisés).

Voir nb commentaires par node :
SELECT node.title, count(*) AS "Nombre Commentaires"
FROM node
RIGHT JOIN comment ON comment.nid=node.nid

gestion des champs (tables field_data_*)

Le champ entity_type de chaque table field_data_* indique quel est le type d’entiré (node, users, comment) à laquelle il se rattache. Le champ bundle lui, stocke le type de contenu (article, page, recette) lorsque entity_type est une node. Le champ entity_id contient le numéro de l’entité (nid lorsque entity_type est une node).

Afficher le nombre de caractères du body des nodes de type « article » :
SELECT title, CHAR_LENGTH(body_value)
FROM field_data_body
JOIN node ON field_data_body.entity_id=node.nid
WHERE node.type="article"

Afficher le titre des recettes triées par prix :
SELECT node.title, field_prix_value
FROM field_data_field_prix

JOIN node ON field_data_field_prix.entity_id=node.nid
ORDER BY field_prix_value

p187

drupal 7 : tables role_permision, role,  user_role au users
drupal 7 : table node (lange, numéro du user qui a créé le node (uid), titre (title), options de publication (sticky, promote)...
drupal 7 : table commentaire (comment)
drupal 7 : table field_data_nomchamps