Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

In Power BI, use Power Query merges to combine columns while preparing data, and semantic-model relationships to let filters travel between separate tables in a report. For most reporting models, organize descriptive dimensions around fact tables, keep each fact table at a consistent grain, and make relationship cardinality match the actual keys.

What’s the difference between a merge and a relationship in Power BI?

A merge is a Power Query transformation: it matches rows from two queries using a shared column and adds columns from one query to the other. A relationship is part of the semantic model: it defines a filter-propagation path between loaded tables without flattening them. Microsoft describes merging as similar to a SQL JOIN and documents the available join kinds in its Power Query table-combination module.

Operation Where it happens What it does Example use
Append Power Query Adds rows from one query to another. Stack monthly sales queries with the same columns.
Merge Power Query Matches rows on a common key and adds columns; the join kind controls which rows are retained. Add a customer name to a prepared sales query using the customer key.
Relationship Semantic model Connects tables so filters can propagate between them at report-query time. Let a customer slicer filter a separate sales fact table.

For a merge, the join kind determines row retention. A left outer join keeps every row from the first table and matching rows from the second; a full outer join keeps rows from both; an inner join keeps only matches. A relationship instead lets the model retain dimensions and facts separately so visuals can filter, group, and summarize across those tables. Microsoft’s guidance on star schema and Power BI explains the roles of these tables.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How should you structure a Power BI model?

For common reporting needs, start with a star schema: dimensions provide descriptive fields for filtering and grouping, while fact tables hold events or values to summarize. Microsoft Learn puts it plainly: “Dimension tables enable filtering and grouping.” A typical relationship is one-to-many, with unique keys in a dimension and repeated corresponding keys in a fact table.

1. Define the grain of each fact table

Write down what one row represents in each fact table—for example, one order line or one daily product total. Keep that meaning consistent within the table. If rows at different levels of detail are mixed, measures can count or aggregate them in misleading ways. Microsoft’s star-schema guidance emphasizes consistent fact-table grain.

2. Separate descriptive dimensions from facts

Put attributes people use to filter or group—such as customer, product, or date—in dimensions. Put transactions, quantities, balances, or other values to summarize in facts. Shared dimensions can connect to multiple fact tables and provide common ways to filter them.

3. Check keys, types, and uniqueness

Confirm that relationship columns represent the same key and have compatible data types. The column on the “one” side must actually be unique; the corresponding fact-side key commonly repeats. Power BI can infer cardinality, but Microsoft warns that inference can be wrong. Verify the data rather than accepting an automatically selected relationship setting without inspection. See Microsoft’s relationship concepts and configuration guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Create and inspect relationships

In Model view, inspect the 1 and * markers and the filter arrows. For typical dimension-to-fact filtering, the intended path runs from the dimension to the fact. Choose a merge instead if your goal is a prepared query with columns brought together, rather than separate model tables linked for report filtering.

5. Validate with a small visual

Use a table or matrix with a key and a relevant measure. Check that expected rows appear, totals make sense, and unmatched values are understood before building more complex visuals. Microsoft’s relationship troubleshooting guidance recommends inspecting data and configuration when values are missing.

How do cardinality and filter direction work?

Cardinality must reflect the data

  • One-to-many: values are unique on one side and may repeat on the other. This is common for a dimension-to-fact relationship.
  • One-to-one: values are unique on both sides.
  • Many-to-many: values repeat on both sides.

Do not choose a cardinality just to make a relationship save. It should describe the actual uniqueness of the columns. A mistaken “one” side or incorrect key can cause unexpected filtering and totals.

Single direction is the usual starting point

Cross-filter direction controls where filters travel. Single-direction filtering is often easier to understand: a dimension filters its related fact. “Both” allows filtering in either direction, but can create ambiguous paths when multiple routes connect tables and can affect performance. Microsoft discusses these trade-offs in its bidirectional relationship guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When should you use a many-to-many relationship?

Use many-to-many deliberately, not as a shortcut for unresolved keys. It can suit genuine data where values repeat on both sides, but the design affects how visuals group and filter and may obscure integrity problems. Microsoft generally recommends representing shared entities with dimensions and one-to-many relationships where practical. Its many-to-many guidance covers the design patterns and limitations.

Many-to-many between dimensions: consider a bridge

If two dimensions have many-to-many associations, model each entity separately and add a bridge table that represents the associations. Connect the bridge to each dimension with one-to-many relationships. Some bridge patterns require bidirectional filtering; if so, document why it is needed and review the resulting paths carefully.

Many-to-many between facts: compare the model before connecting them directly

A direct many-to-many relationship between fact tables can constrain how visuals group and filter data. Consider whether shared dimensions can connect to both facts instead. Evaluate the alternatives against these questions:

  • Does the design represent each table’s grain and keys accurately?
  • Which dimensions can filter each fact?
  • Do totals remain meaningful, including where values are non-additive?
  • Could multiple filter paths become ambiguous?
  • Will the model remain understandable and perform acceptably?

Customer balances, for example, may be non-additive: adding balances across customers or periods can produce a result that is not a meaningful total. A relationship design does not make a non-additive measure additive; define and interpret measures according to what the values mean.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Should you turn on bidirectional filtering?

Only when a specific analysis or model pattern requires filters to travel in both directions. It may be useful in a bridge-table pattern, but applying it broadly can create ambiguous filter paths and affect performance. Before enabling it, identify the precise visual or calculation that needs the reverse path and check whether a simpler model or measure can provide the result. Review Microsoft’s guidance on bidirectional relationships.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How should you handle active and inactive relationships?

An active relationship is the default filter path. Only one relationship between two tables can be active at a time; an inactive relationship does not automatically filter visuals. A calculation can invoke an inactive relationship with the DAX function USERELATIONSHIP. Details are in Microsoft’s active versus inactive relationship guidance.

Example: order date and ship date

A sales fact may contain both order date and ship date. If users need independent active date paths—for example, to place both roles in visuals—use separate role-playing date dimensions. If simultaneous role-based visual filtering is not needed, one active date relationship plus an inactive relationship used in calculations with USERELATIONSHIP can be an option.

What does “Assume referential integrity” mean in DirectQuery?

Where this DirectQuery setting applies, enabling “Assume referential integrity” can let the source query use an inner join. That can be appropriate only when related keys are known to match. If keys are missing, unmatched rows may be eliminated and results understated. Check integrity before enabling the option; do not treat it as a way to repair missing relationships or data. See the relationship documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why is my Power BI visual missing data?

Work from the visible symptom toward the relationship and source data. An unexpected blank group or missing rows can come from absent data, an incorrect or missing relationship, an inactive path, unsuitable cardinality, or keys that do not match.

  1. Switch to a table or matrix and inspect the rows and keys involved.
  2. Confirm that both tables loaded data.
  3. Open Model view and check that the expected relationship exists.
  4. Verify cardinality against the actual uniqueness of the relationship columns.
  5. Check whether the relationship is active or inactive.
  6. Follow the filter arrows to confirm the direction allows the intended filter to reach the table.
  7. Confirm that the selected columns are the corresponding keys and use compatible data types.
  8. Investigate unmatched keys and null values; for DirectQuery, check whether an inner-join assumption can remove unmatched rows.

Microsoft’s troubleshooting guide provides further checks for missing values and relationship configuration.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.