Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Tudo que Denis Courcy postou

  1. Do que foi explicado anteriormente, o que você não entendeu? São dois conjuntos de dados. o conjunto tabela_A e o conjunto tabela_B. Para listar todos os elementos do conjunto tabela_A e todos os elementos do conjunto tabela_B que sejam iguais aos elementod do conjunto tabela_A, usa-se o LEFT JOIN. Veja novamente o exemplo no post anterior.
  2. Não. O distinct mostra um de cada, sem repetição, não importando se aparece uma ou mais vezes. Já entendi o que você quer. Seria assim: Criação e carga da tabela create table tabela_a( campo int)engine=myisam; Insert into tabela_a(campo) values (1),(1),(1),(2),(3),(4),(4),(4),(5),(6),(7),(7); Seleçãoselect campo from tabela_a group by campo having count(campo)>1 Resultadocampo ------- 1 4 7
  3. Creio que ninguém entendeu o que você quer. Nem eu. O distinct serve para isolar um elemento de cada em um conjunto. Por exemplo: Na Tabela_A o campo c possui os seguintes valores: {1,1,1,2,3,4,4,4,5,6,7,7} Usando o distinct na seleção, assim: SELECT DISTINCT c FROM Tabela_A você teria como resultado:C --- 1 2 3 4 5 6 7 Sabendo que a tabela_A possui 12 registros, uma contagem com distinct seria assim:SELECT count(DISTINCT c) FROM Tabela_A e teria o resultado:count(DISTINCT c) ----------------------- 7 O que mais disso você quer saber?
  4. Seja a tabela_A = {1,2,3,4,5} e a tabela_B = {1,2,3,4,6}. O LEFT JOIN entre tabela_A e tabela_B trará todos os elementos de tabela_A e os elementos de tabela_B que forem iguais aos elementos de tabela_A SELECT A.cod AS A, B.cod AS B FROM tabela_A A LEFT JOIN tabela_B B ON B.cod = A.cod O resultado seráA B 1 1 2 2 3 3 4 4 5 NULL
  5. Para saber quais codigos estão em ambas tabelas (o conjunto interseção de A e B) você tem: SELECT DISTINCT A.codigo FROM tabela_A A INNER JOIN tabela_B B ON B .codigo = A.codigo Para saber o resultado de A - B nos conjuntos acima, teremos:SELECT A.codigo FROM tabela_A A WHERE A.codigo NOT IN (SELECT B.codigo FROM tabela_B B)
  6. Não entendi o que você quer. Se tem relação com o código que você enviou ou não; Ou se você que um select do zero. Arrumei seu código. Agora fica mais fácil de entendê-lo e já faz o que você quer. SELECT DISTINCT * FROM USUARIO_IDENTIDADE ui INNER JOIN USUARIO_ENDERECO ue ON ue.USER_COD = ui.USER_COD INNER JOIN USUARIO_PROFISSIONAL up ON up.USER_COD = ui.USER_COD INNER JOIN USUARIO_CONT_PRIMARIO ucp ON ucp.USER_COD = ui.USER_COD INNER JOIN CIDADES cid ON cid.CID_ID = ue.CID_ID INNER JOIN EMPRESA_IDENTIDADE ei ON ei.EMP_COD = u.EMP_COD INNER JOIN LOGIN l ON l.USER_COD = ui.USER_COD INNER JOIN USUARIO u ON u.USER_COD = ui.USER_COD INNER JOIN ESTADOS e ON e.EST_ID = cid.CID_UF LEFT JOIN BAIRROS b ON b.BAI_ID = ue.BAI_ID WHERE ui.USER_COD = '$user_cod' AND ui.USER_I_DATAMOD = (SELECT max(USER_I_DATAMOD) FROM USUARIO_IDENTIDADE ui2 WHERE ui2.USER_COD = ui.USER_COD) AND ue.END_U_DATAMOD = (SELECT max(END_U_DATAMOD) FROM USUARIO_ENDERECO ue2 WHERE ue2.USER_COD = ue.USER_COD) AND up.PROF_DATAMOD = (SELECT max(PROF_DATAMOD) FROM USUARIO_PROFISSIONAL up2 WHERE up2.USER_COD = up.USER_COD) AND ucp.CONT_P_DATAMOD = (SELECT max(CONT_P_DATAMOD) FROM USUARIO_CONT_PRIMARIO ucp2 WHERE ucp2.USER_COD = ucp.USER_COD) AND ei.EMP_I_DATAMOD = (SELECT max(EMP_I_DATAMOD) FROM EMPRESA_IDENTIDADE ei2 WHERE ei2.EMP_COD = ei.EMP_COD)
  7. Atributo é o mesmo que campo ou coluna. No 1º ano do segundo grau é relembrado e ensinado sobre o principio de relacionamentos e conjuntosRelações univocas, biunívocas, etc. Está contido, pertence, não pertence, não está contido, contém, etc. Leia sobre normalização de tabelas. Aconselho a leitura deste livro: Sistemas de Bancos de Dados
  8. O que você precisa é inserir a primeira e a última data. Inserir as demais é besteira. É perda de tempo, de processamento e de espaço em disco.
  9. Sim. terá que consultar a tabela filha.Esta tabela filha, na verdade é a tabela pai. Pois é o lado um do relacionamento um para muitos entre departamento e clientes. Um departamento pode ter muitos clientes e muitos clientes pertencem a um departamento (conforme você criou) Não. pois você ferirá o principio de normalização de tabelas.Imagine se o nome do departamento for trocado. Vai ter que trocar em N clientes? Sim. É assim que as pessoas que trabalham direito fazem.O princípio é o mesmo do descrito acima.
  10. Você só vai conseguir juntar as duas tabelas em uma única busca se houver atributos em comum para que elas possam fazer join. Lembre-se das aulas de teoria de conjuntos do (6º ano primeiro grau). Trabalhar com bancos de dados nada mais é que aplicar de forma real o que você aprendeu em matemática na teoria.
  11. Sim. Crie indice fulltext e pesquise por ele. É muio mais eficiente que o LIKE. É o sistema que o Google e diversas outras empresas de busca usam.
  12. Não há este tipo de informação no MySQL. Nem no INFORMATION_SCHEMA, nem no MySQL.
  13. Oi, 'Fernando_mcunha' Você não pode comparar um campo com NULO usando = ou <> (igual ou diferente). A comparação correta é com IS NULL ou IS NOT NULL. Exemplo: campo IS NULL campo IS NOT NULL. Veja o Manual do MySQL para mais detalhes.
  14. Denis Courcy

    Desativação dos Dados

    Movendo MySQL -->> PHP
  15. Com respeito ao uso do mysqldump e do mysql.exe, sim. Aliás, a diferença está no uso de storages procedures, funções, triggers e schedulle que não tem na versão 4.1.
  16. Sua select não deveria ser:SELECT * FROM reserva WHERE SALA = 1 AND DATA_INICIO >= '2010-10-05' AND DATA_FIM <= '2010-10-05' AND ((HORA_INICIO BETWEEN '08:00:00' AND '10:00:00') OR (HORA_FIM BETWEEN '08:00:00' AND '10:00:00')) Ou seja o horário igual a 8:00:00 em vez de 9:00:00? O sql correto deveria ser sem usar o BETWEEN. Assim:SELECT * FROM reserva WHERE SALA = 1 AND DATA_INICIO >= '2010-10-05' AND DATA_FIM <= '2010-10-05' AND HORA_INICIO <= '09:00:00' AND HORA_FIM >= '10:00:00'
  17. Você encontra aqui: Manuais e Banco para Baixar Para copiar usando interface gráfica, você pode usar o SQLYOG Download: SQLyog Community Edition - 8.61 Eu gosto muito da verão 5.13 beta2.
  18. A cópia deve ser feita com o mysqldump e a restauração com o comando SOURCE dentro do aplicativo de linha de comando mysql.exe Veja o manual do mysql sobre como usar. Pesquise aqui no forum outros tópicos, comentados por mim, cobre backup e restauração debackup em mysql
  19. Você pode usar os componentes BDE.Instalando nas máquinas clientes o BDE administrator e o MyODBC. Uma outra opção, que não precisa de instalar nada na máquina do cliente é usar os componentes Zeos que fazem conexão direta com o banco MySQL sem necessidade de ODBC.
  20. SELECT u.id, u.nome, n.nome AS nivel FROM usuario u INNER JOIN nivel n ON n.id = u.nivel Os nomes das colunas do exemplo acima são os nomes das colunas constantes em seu exemplo
  21. UPDATE <nomedatabela> SET <nomedocampo> = <nomedocampo> + 1
  22. Oi, 'MalloryKnox' Só posso te responder com relação a SQL. Não entendo nada da linguagem que você usa. Seu exemplo fica assim: SELECT * FROM paciente p INNER JOIN encaminhamento e ON e.codigo_paciente = p.codigo_paciente WHERE p.idade = <seuvalor> AND e.droga = <seuvalor>
  23. Algumas linguagens, tal como java, já traz um componente que você compila junto com seu programa e não precisa de mais nada. Outras você terá que usar o MyODBC para estabelecer a conexão com o banco. Trabalho com Delphi e ele tem ambas as opções. Não conheço a linguagem que você está usando, por isso não posso opinar sobre ela.
  24. Denis Courcy

    Subquery

    Oi, 'ESerra' Uma solução possível para seu problema seria com o uso de join. Assim: SELECT descricao FROM servicos s INNER JOIN geral g ON g.servicos = s.id WHERE g.id '1'
  25. Não é este o problema. campo int amanho 11. Campo int unsigned tamanho 10. Mesmo que você force diferente, internamente será este tamanho. No caso dele o problema é a falta de um valor default. Se o campo é not null ele precisa ser inicializado por padrão.
×
×
  • Criar Novo...