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, décrite sur la page de documentation sur la dimension, le filtre et les types de paramètres.

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

type peut également être utilisé dans le cadre d'un filtre de tableau de bord, décrit sur la page de documentation des paramètres du tableau de bord.

type peut également être utilisé dans un élément de tableau de bord, 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: interne
}
}
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 de type de jointure possibles sont représentées dans l'image suivante:

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 de préférence pour les types de jointure sur cette page). Vous le connaissez peut-être de SQL en tant que LEFT JOIN. Lorsque vous utilisez cet élément type, toutes les lignes de la section "Explorer" 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 pouvez connaître en SQL sous le nom FULL OUTER JOIN, inclut toutes les lignes de la vue Explorer et joint, même s'il n'existe aucune donnée correspondante de l'autre vue. Veuillez noter que les jointures externes complètes ne sont pas compatibles avec MySQL.



inner

Le type de jointure inner, que vous pouvez connaître dans SQL en tant que JOIN ou INNER JOIN, n'inclut que les lignes dont les enregistrements correspondent dans la vue Explorer et la vue jointe.



cross

Le type de jointure cross, que vous pouvez connaître en SQL sous le nom CROSS JOIN, est rarement utilisé. Elle est parfois utile pour le remplissage sans remplissage ou la génération de matrices. Une ligne est créée pour chaque combinaison de la vue Explorer et de la vue jointe. Le concept est difficile à illustrer sur un diagramme de Venn. Pour le comprendre, reportez-vous à l'exemple de tableau:

Examples

Utilisez un LEFT JOIN pour ajouter des données dna à vos données people, si des informations dna sont disponibles:

explore: person {
  join: dna {
    sql_on: ${person.dna_id} = ${dna.id} ;;
    type: left_outer  # Could be excluded since left_outer is the default
  }
}

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 limiter 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 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

Privilégiez left_outer types de jointure

Lorsque vous apprenez et utilisez SQL, de nombreuses personnes se concentrent principalement sur JOIN, techniquement appelé "jointure interne". Pour cette raison, on peut supposer que type: inner_join doit être utilisé dans la majorité des cas. Cependant, Looker fonctionne généralement mieux avec type: left_outer, ce qui revient à utiliser LEFT JOIN en SQL.

En effet, la vue associée à une exploration (et non les vues associées) est généralement constituée des données "principales". Par exemple, vous disposez peut-être d'une exploration basée sur les informations d'événements. Certains d'entre eux peuvent être générés par votre système et d'autres par vos utilisateurs. Si vous rejoignez user avec event à l'aide d'un JOIN standard, vous ne verrez que les événements créés par un utilisateur. Vous n'aurez plus accès aux événements système. En utilisant plutôt 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 le SQL pour une requête, il tente de créer le SQL le plus propre possible et n'utilise que les jointures nécessaires aux champs sélectionnés par un utilisateur. Lorsque vous utilisez type pour définir autre chose que LEFT JOIN, vous souhaiterez peut-être toujours inclure une certaine jointure (ou un ensemble de jointures) dans la requête pour vous assurer que les lignes résultantes incluent vos restrictions de jointure. Pour ce faire, utilisez le paramètre always_join.