Programação  
 
Conhecimento computador >> Programação >> Programação PHP /MySQL >> 
MySQL junta Tutorial Relacionamento
MySQL é uma fonte relacional sistema de gerenciamento de banco de dados aberto (RDBMS) que os indivíduos e as empresas utilizam com freqüência para executar o back-end de aplicações web. Em SQL , junta-se frequentemente frustrar novos usuários. Como os bancos de dados tornam-se maiores , torna-se crítico para consultas de usar junta de forma eficiente. Cadastre- chave do MySQL torna mais fácil trabalhar com novos e código legado . Associações interna

Quando você pensa em unir duas tabelas, você provavelmente pensa em uma consulta com uma simples junção de uma tabela como empregados com uma tabela como Departamentos :

Selecione Employees.last_name , Employees.first_name , Departments.department_nameFROM Departamentos , EmployeesWHERE Departments.department_id = Employees.department_id ;

Esta é uma junção interna . Ele recupera apenas as linhas onde o department_id é exatamente igual em ambas as tabelas . O código acima funciona no MySQL , mas você pode achar que é menos legível do que o seguinte :

Selecione Employees.last_name , Employees.first_name , Departments.department_nameFROM DepartmentsINNER Cadastre EmployeesON Departments.department_id = Employees.department_id ;

Estas duas consultas produzem exatamente a mesma saída . A diferença é que , usando o MySQL Cadastre palavra-chave , você fez isso mais óbvio que tipo de junção que você usou . Desde junção interna é o padrão, se você deixar de fora a palavra-chave INNER , MySQL ainda realiza uma junção interna .
Associações externas

Se você tem funcionários que não são atribuídos a um departamento específico e tem um valor NULL para a sua department_id , a juntar-se acima não serão exibidos os funcionários em tudo. Se você quiser que todos os funcionários se eles têm um departamento ou não, você tem que usar uma associação externa .

MySQL usa esquerdo ou direito com a palavra-chave JOIN para especificar que deseja uma junção externa, e dizer-lhe qual a tabela você quer os nulos de . Aqui está a nossa consulta revisto :

Selecione Employees.last_name , Employees.first_name , Departments.department_nameFROM EmployeesLEFT OUTER JOIN DepartmentON Departments.department_id = Employees.department_id ;

Você começa cada funcionário em sua saída , mesmo se o MySQL não encontra department_id para corresponder ao registro de funcionário . A tabela que você deseja permitir nulos de (departamentos) está à esquerda do sinal de igual .

Se você queria ver departamentos sem funcionários em sua saída, você usaria um RIGHT OUTER JOIN. A tabela que você deseja permitir nulos de , nesse caso, está à direita do sinal de igual .
Cruz junta

Fazendo cruz junta por acaso é um erro comum . É o que acontece quando você não especificar uma junção de todo. Se você não quer colocar uma junção na sua cláusula WHERE, ou usar um dos outros ... Cadastre-se sobre as opções , você tem todas as combinações possíveis das linhas em cada uma das tabelas na sua DE se eles têm um relacionamento ou não .

Se você puxar a partir de três tabelas com , respectivamente , 10, 20, e 3 linhas , você tem 10 x 20 x 3 linhas como a sua produção total. Você pode ver o problema se isso faz com que o seu banco de dados tem mais de alguns registros.

Raramente, você vai querer fazer uma junção cruzada de propósito. MySQL permite que você use o CROSS JOIN ... ON sintaxe para mostrar a qualquer um editar o seu código depois que a junção cruzada foi deliberado.

Anterior :

Próximo : No
  Os artigos relacionados
·Como timestamp MySQL PHP 
·Como para recuperar linhas de ResultSet para MySQL em J…
·Como desativar avisos do PHP no Plesk 
·Como enviar dados em MySQL com PHP 
·Como converter Classe PHP para XML 
·Como inserir Ignorar ou Obter ID no MySQL 
·Como usar o PHP: Exec 
·Como fazer upload de arquivos de vídeo PHP 
·Como excluir Do Tablename em um DataBaseName no MySQL 
·Como incorporar um arquivo SWF em PHP 
  Artigos em destaque
·Como incluir JS externo em JavaScript 
·Como Fazer um Botão Sair em C + + 
·Como colocar preços em classes em um Fretta Gamemode 
·Como substituir uma barra invertida 
·Como fazer um arquivo VSH 
·Como Verificar a existência de um tipo numérico em Ja…
·Como plotar grandes Linhas em MATLAB 
·Como Obter scripts PHP Up & Running With Dreamweaver CS…
·Como criar Winapi Listbox 
·Como adicionar importação para um arquivo JSP 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados