Conecte tabelas com JOIN
Combine linhas relacionadas e veja o que ocorre quando falta correspondência.
- Escolher entre INNER JOIN e LEFT JOIN para cada pergunta.
JOIN combina linhas conforme relacionamento entre tabelas. INNER JOIN retorna apenas correspondências nos dois lados. LEFT JOIN mantém todas as linhas da tabela à esquerda e preenche colunas da direita com NULL quando não há match.
1SELECT customers.name, orders.order_id, orders.total
2FROM customers
3INNER JOIN orders
4 ON orders.customer_id = customers.customer_id;
5
6SELECT customers.name, orders.order_id
7FROM customers
8LEFT JOIN orders
9 ON orders.customer_id = customers.customer_id;Qualifique colunas com nome da tabela quando houver ambiguidade. A condição em ON define o relacionamento, e múltiplas correspondências podem gerar múltiplas linhas no resultado.
Principais conclusões
Escolher entre INNER JOIN e LEFT JOIN para cada pergunta.
Use nomes de tabela e coluna que tornem a consulta legível.
Confirme quais linhas a consulta afeta antes de depender do resultado.
Quiz da aula
5 perguntas · aprovação com 4 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: escreva consultas SQL
Escreva consultas em pequenos bancos de dados de exemplo e execute-as localmente no navegador. Cada teste começa com um banco SQLite novo.
Liste clientes e pedidos
Retorne todos os nomes de clientes e order_id correspondente (incluindo clientes sem pedidos), ordenando por customer_id e order_id.
- Todos clientes e pedidos
Tabelas e registros de exemplo
Cada teste recria um banco de dados em memória no dialeto escolhido antes de executar a consulta.
CREATE TABLE customers (customer_id INTEGER PRIMARY KEY, name TEXT); CREATE TABLE orders (order_id INTEGER PRIMARY KEY, customer_id INTEGER, total REAL); INSERT INTO customers VALUES (1, 'Sam Lee'), (2, 'Ari Chen'), (3, 'Jo Diaz'); INSERT INTO orders VALUES (101, 1, 20), (102, 1, 15), (103, 3, 9);Usando SQLite 3 (sql.js), um banco de dados embutido. As consultas rodam localmente em um worker, com um banco em memória novo a cada teste.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…