type

Cette page fait référence au paramètre type 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 du 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 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 associée 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 s'il n'y a 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 JOIN ou INNER JOIN) n'inclut que les lignes qui comportent des enregistrements correspondants dans l'exploration et la vue associée.

cross

Le type de jointure cross, que vous connaissez peut-être en SQL sous le nom de CROSS JOIN, est rarement utilisé. Elle est parfois utile pour le remplissage par des zéros ou la génération de matrices. 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) correspond généralement aux données "principales". Par exemple, vous pouvez avoir un Explore basé 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 rejoignez user dans 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 autre chose 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.