type

Cette page fait référence au type paramètre qui fait partie d'une jointure.

type peut également être utilisé dans une dimension, comme décrit sur la page de documentation Types de dimensions, de filtres et de paramètres.

type peut également être utilisé dans une mesure, comme décrit sur la page de documentation Types de mesures.

type peut également être utilisé dans un filtre de tableau de bord, comme décrit sur la page de documentation Paramètres de tableau de bord.

type peut également être utilisé dans un élément de tableau de bord, comme décrit sur la page de documentation du paramètre type (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 left_outer sont généralement préférés de cette page). Vous le connaissez peut-être en SQL sous le nom de LEFT JOIN. Lorsque vous utilisez ce 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, que vous connaissez peut-être en SQL sous le nom de FULL OUTER JOIN, inclut toutes les lignes de l'exploration et de la vue jointe, même s'il n'existe pas de données correspondantes dans l'autre vue.

inner

Le type de jointure inner, que vous connaissez peut-être en SQL sous le nom de JOIN ou INNER JOIN, n'inclut que les lignes qui comportent des enregistrements correspondants dans l'exploration 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é. Il est parfois utile pour le remplissage à zéro ou la génération de matrices. Il crée une ligne pour chaque combinaison de l'exploration et de la vue jointe.

Exemples

Utilisez une 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 une INNER JOIN pour ajouter des données user à vos données event et limitez les résultats aux seuls événements générés par un utilisateur :

explore: event {
  join: user {
    sql_on: ${event.user_id} = ${user.id} ;;
    type: inner
  }
}

Utilisez une 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, de nombreuses personnes se concentrent principalement sur JOIN, qui est techniquement appelée "jointure interne". Pour cette raison, on pourrait supposer que type: inner_join doit être utilisé dans la majorité des cas. Toutefois, Looker fonctionne généralement mieux avec type: left_outer, ce qui revient à utiliser une 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'une 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 une 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 autre chose qu'une 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 always_join paramètre.