O MySQL cláusula INNER JOIN uma parte opcional da instrução SELECT . Parece imediatamente após o DE cláusula.
Antes de usar o MySQL cláusula INNER JOIN, você tem que especificar os seguintes critérios:
- Primeiro, você tem que especificar a tabela principal que aparece na DE cláusula.
- Em segundo lugar, você precisa especificar a tabela que você quer se juntar com a mesa principal, que aparece no INNER JOIN cláusula. Teoricamente, você pode participar de uma mesa com muitas mesas. No entanto, para melhor desempenho de consulta, você deve limitar o número de mesas para participar.
- Em terceiro lugar, você precisa especificar a junção condição ou predicado. A juntar a condiçãoaparece após a palavra-chave ON da INNER JOIN cláusula. A juntar-se a condição é a regra para linhas correspondentes entre a mesa principal e as outras mesas.
A sintaxe da cláusula MySQL INNER JOIN é a seguinte:
1
2
3
4
5
6
|
SELECT column_list
FROM t1
INNER JOIN t2 ON join_condition1
INNER JOIN t3 ON join_condition2
...
WHERE where_conditions;
|
Vamos simplificar a sintaxe acima, assumindo que estamos a unir duas tabelas T1 e T2 usando oINNER JOIN cláusula.
Para cada registro no T1 tabela, o MySQL INNER JOIN cláusula compara com cada registro do T2 mesa para verificar se ambos satisfazer a juntar condição . Quando a juntar-se a condição é correspondida, ele irá retornar esse registro que combinam colunas em um ou ambos os T1 e T2tabelas.
Observe que os registros em ambos T1 e T2 tabelas têm de ser adaptadas com base na junçãocondição . Se nenhuma correspondência encontrada, a consulta retornará um conjunto vazio.
A lógica é aplicada se juntar mais de 2 mesas.
O diagrama de Venn ilustra como o MySQL INNER JOIN obras cláusula.
Evite erro coluna ambíguo em MySQL INNER JOIN
Se você juntar várias tabelas que possuem o mesmo nome da coluna, você tem que usar a tabela de qualificação para se referir a essa coluna no SELECIONAR cláusula para evitar erro de coluna ambíguo.Por exemplo, se ambos T1 e T2 tabelas têm a mesma coluna chamada C ; no SELECIONARcláusula, você tem que se referir a C coluna usando a tabela de qualificação como T1.C ou t2.c .
Para economizar tempo de digitação tabela eliminatórias, você pode usar aliases de tabela na consulta.Por exemplo, você pode dar o verylongtablename mesa um alias T e se referem a suas colunas usando t.column vez de verylongtablename.column .
Exemplos de como usar MySQL cláusula INNER JOIN
Vamos dar uma olhada em duas tabelas: produtos e productlines tabelas no banco de dados da amostra.
Agora, se você quiser obter
- O código do produto e nome do produto do produto mesa.
- O texto de descrição das linhas de produtos da productlines mesa .
Você precisa selecionar os dados de ambas as tabelas e linhas jogo comparando o productlinecoluna do produto tabela com o productline coluna da productlines tabela como a seguinte consulta:
1
2
3
4
5
|
SELECT productCode,
productName,
textDescription
FROM products T1
INNER JOIN productlines T2 ON T1.productline = T2.productline;
|
MySQL INNER JOIN com a cláusula GROUP BY
Podemos obter o número do pedido, status de pedidos e vendas totais das ordens e OrderDetailstabelas usando o INNER JOIN com a cláusula GROUP BY da seguinte forma:
1
2
3
4
5
6
|
SELECT T1.orderNumber,
status,
SUM(quantityOrdered * priceEach) total
FROM orders AS T1
INNER JOIN orderdetails AS T2 ON T1.orderNumber = T2.orderNumber
GROUP BY orderNumber
|
0 comentários :
Postar um comentário