Cette page fait référence au paramètre
typequi fait partie d'une jointure.
typepeut également être utilisé dans une dimension, comme décrit sur la page de documentation Types de dimensions, de filtres et de paramètres.
typepeut également être utilisé dans une mesure, comme décrit sur la page de documentation Types de mesures.
typepeut également être utilisé dans un filtre de tableau de bord, comme décrit sur la page de documentation Paramètres du tableau de bord.
typepeut également être utilisé dans un élément de tableau de bord, comme décrit sur la page de documentation du paramètretype(pour les tableaux de bord LookML).
Utilisation
explore: view_name {
join: view_name_2 {
type: inner
}
}
|
Hiérarchie
type |
Valeur par défaut
left_outer
Acceptation
Type de jointure (cross, full_outer, inner, left_outer)
Règles spéciales
Lorsque vous utilisez un type autre que left_outer, vous pouvez utiliser always_join pour vous assurer que les lignes résultantes incluent vos restrictions de jointure.
|
Définition
type vous permet de décrire le type de jointure que vous souhaitez effectuer.
Les valeurs possibles du type de jointure sont décrites dans les sections suivantes de cette page :
left_outer (valeur par défaut)

Le type de jointure le plus courant dans Looker est left_outer (la raison de son utilisation fréquente est décrite dans la section Les types de jointure left_outer sont généralement préférés de cette page). Vous le connaissez peut-être dans SQL sous la forme LEFT JOIN. Lorsque vous utilisez type, toutes les lignes de l'exploration sont incluses et les données de la vue jointe sont importées, si elles sont disponibles.

full_outer

Le type de jointure full_outer (FULL OUTER JOIN en SQL) inclut toutes les lignes de l'exploration et de la vue jointe, même si aucune donnée correspondante n'est disponible dans l'autre vue.

inner

Le type de jointure inner (que vous connaissez peut-être sous le nom de JOIN ou INNER JOIN en SQL) n'inclut que les lignes qui comportent des enregistrements correspondants dans la vue Explorer et la vue jointe.

cross

Le type de jointure cross, que vous connaissez peut-être en SQL sous le nom de CROSS JOIN, est rarement utilisé. Cette option est parfois utile pour la génération de matrices ou le remplissage par des zéros. Il crée une ligne pour chaque combinaison de l'exploration et de la vue associée.

Exemples
Utilisez un FULL OUTER JOIN pour ajouter des données user à vos données order, même si l'utilisateur n'a pas passé de commande :
explore: order {
join: user {
sql_on: ${order.user_id} = ${user.id} ;;
type: full_outer
}
}
Utilisez un INNER JOIN pour ajouter des données user à vos données event, et limitez les résultats aux événements générés par un utilisateur :
explore: event {
join: user {
sql_on: ${event.user_id} = ${user.id} ;;
type: inner
}
}
Utilisez un CROSS JOIN pour générer toutes les combinaisons possibles de owner et property :
explore: property {
join: owner {
sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
type: cross # but causes problems in other dialects, try adding or
} # removing if you experience problems with cross joins
}
Bon à savoir
Les types de jointure left_outer sont généralement préférés.
Lorsque vous apprenez et utilisez SQL, vous vous concentrez principalement sur JOIN, qui est techniquement connu sous le nom de "jointure interne". Pour cette raison, on pourrait supposer que type: inner_join devrait être utilisé dans la majorité des cas. Toutefois, Looker fonctionne généralement mieux avec type: left_outer, ce qui revient à utiliser un LEFT JOIN en SQL.
En effet, la vue associée à une exploration (par opposition aux vues jointes à une exploration) est généralement la donnée "principale". Par exemple, vous pouvez avoir une exploration basée sur des informations sur les événements. Certains événements peuvent être générés par votre système et d'autres par vos utilisateurs. Si vous joignez user à event à l'aide d'un JOIN standard, vous ne pourrez voir que les événements créés par un utilisateur et vous perdrez la visibilité sur les événements système. En utilisant un LEFT JOIN, vous pourrez voir tous les événements, qu'un utilisateur y soit associé ou non.
Vous pouvez utiliser always_join si la restriction des lignes est importante.
Lorsque Looker génère du code SQL pour une requête, il tente de créer le code SQL le plus propre possible et n'utilise que les jointures nécessaires pour les champs qu'un utilisateur sélectionne. Lorsque vous utilisez type pour définir un élément autre qu'un LEFT JOIN, vous pouvez toujours souhaiter qu'une certaine jointure (ou un ensemble de jointures) fasse partie de la requête, afin de vous assurer que les lignes résultantes incluent vos restrictions de jointure. Pour ce faire, utilisez le paramètre always_join.