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. O inverso é possivel através de trigger. Você cria uma trigger na tabela A e outra trigger na tabela B. Ambas triggers são para incluir dados na tabela X. Todas as vezes que você incluir dados nas tabelas A ou B estes serão gravados também na tabela X. Estude o Manual o MySQL de sua verão para mais detalhes sobre triggers.
  2. Foi o que disse antes. Crie um campo tipo datetime not null e ele preencha-o com a data e hora da inclusão do registro. Assim você sempre saberá qual o registro mais antigo e qual o mais novo. Imagine assim: ID ID_DIVIDA_RAIZ DATA_INCLUSAO_REGISTRO 1 1 2012-01-01 08:00:00 2 1 2012-01-01 08:00:01 3 1 2012-01-01 08:00:10 4 4 2012-01-01 08:00:02 5 4 2012-01-01 08:00:03 6 4 2012-01-01 08:00:05
  3. Para controlar quem é o primeiro e/ou último elemento inserido você deve usar ou um campo datetime ou um campo timestamp (este é o melhor) ou uma chave primária em um campo com auto_increment.
  4. Estude o comando PREPARE. mysql> SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; mysql> PREPARE stmt2 FROM @s; mysql> SET @a = 6; mysql> SET @b = 8; mysql> EXECUTE stmt2 USING @a, @b; +------------+ | hypotenuse | +------------+ | 10 | +------------+ mysql> DEALLOCATE PREPARE stmt2;
  5. Oi jefponte, A sintaxe que escrevi é a usada dentro do Mysql para escrever códigos (triggers, storage procedures, functions). Cada linguagem usa uma sintaxe diferente. Você usa PHP e é comum, mas não é correto (pois existe uma área própria para PHP), voces postarem nesta área codigos em PHP. Parabéns por ter conseguido corrigir seu código.
  6. Outra solução: SELECT * from Televisao tv INNER JOIN Teatro tt ON tt.IdAtor = tv.IdAtor WHERE tv.idAtor='183'
  7. Seu problema não é com MySQL. é com PHP. Movendo MySQL -->> PHP
  8. 'jlcSampaio' Verifique e altere algumas das situações abaixo: Ative a cláusula ZEROFIL em key_produtos na tabela produtos. Você não precisará preencher CODBARRA com zeros. Ele já virá cheio do campo. Verifique se existem indices para o campo key_produtos nas tabelas produtos, compras_itens, vendas_itens e vendasnf_itens.
  9. Escrevi assim porque esta é a área de Banco de Dados de MySQL e não a área de PHP ou qualquer outra linguagem.
  10. update tabela set telefone = CONCAT("2",SUBSTRING(telefone,2,8)); CONCAT = função que faz concatenização de strings SUBSTRING = função que pega parte de uma string. Neste caso, pega 8 posições a partir sa 2a. posição. O telefone 6443-XXXX de seu exemplo seria CONCAT("2","443-XXXX") que daria como resultado "2443-XXXX"
  11. Denis Courcy

    Ajuda em query MySql

    Desculpe coloquei um parentese a mais Tente assim: select tab.id_alimento, tab.ingrediente from (select id_alimento, group_concat(id_ingrediente) as ingrediente from tabela group by id_alimento) tab where tab.ingrediente = "9,10,11"
  12. Se você ler o manual verá que o comando SET é usado para atribuir um valor a uma variável ou a um campo. Ainda lendo o manual, a instrução (select LAST_INSERT_ID()) retorna o ultimo elemento (autoincrementado) inserido pela instrução imediatamente anterior dentro da mesma transação.
  13. Simples. Tudo deve estar em uma única transação: Start Transaction; Insert into tbl_cidade(Município) Values("RIO DE JANEIRO"); Insert into tbl_hospitais(Hospital, Id_city) Values("Hospital de Clinicas", LAST_INSERT_ID()); Commit;
  14. Já tentou assim? SELECT id_do_pai, id_do_filho FROM `tb_filhos_cidades` WHERE `id_da_cidade` = 5370 OR `id_da_cidade` =3309 GROUP BY id_do_pai) HAVING COUNT(id_do_pai) > 1 Obs.: Não confunda (') aspas com (`)crase. Crase é para identificar nomes de bancos, tabelas, campos e nomes de trigges, funções e procedures do MySQL. Aspas são usadas para identificar literais do tipo String (char, varchar e text).
  15. ou Tenta assim: SELECT ds_convenio, COUNT(cd_convenio) FROM CONVENIO GROUP BY ds_convenio
  16. Denis Courcy

    Ajuda em query MySql

    Tente assim: select tab.id_alimento, tab.ingrediente from (select id_alimento, group_concat(id_ingrediente) as ingrediente from tabela group by id_alimento)) tab where tab.ingrediente = "9,10,11"
  17. Inclua um campo auxiliar para dizer que tipo de carta é. Crie um indice único com este campo + o id da tabela. Pronto. Suas cartas vão ficar ordenadas corretamente e a busca será fácil.
  18. Denis Courcy

    Criando Schemas

    Já tentei de várias formas diferentes para criar este "Schema" Alguém pode me mostrar o caminho correto para isto? Ou dizer o que devo fazer para finalizar este processo? Use crases e não apóstrofos. Assim `DADOS` e não do jeito que você fez 'DADOS'
  19. Use LAST_INSRERT_ID. exemplo: START TRANSACTION; INSERT INTO tb_postagem(titulo, corpo, autor_id) VALUES('afafafafa', 'gagagagag', 1); SET @idpostagem = (select LAST_INSERT_ID()); INSERT INTO categorias(categoria) VALUES('xxxx'); INSERT INTO tb_relacionamento(Postagem_id, categoria_id) VALUES(@idpostagem, LAST_INSERT_ID());
  20. Corrija a tabela. ela está corrompida.
  21. CREATE TEMPORARY TABLE nomedatabela SELECT * FROM tab1 INNER JOIN tab2 ON tab1.id=tab2.id
  22. Leia sobre PREPARED STATEMENTS no manual do MySQL de sua verão. (Só funcionará em Stored Procedures)
  23. Faça assim: SELECT p.nome, ucad.nome, ualt.nome FROM tbPessoas p INNER JOIN tbUser ucad ON ucad.id = p.idUserCadastrou INNER JOIN tbUser ualt ON ualt.id = p.idUserAlterou
  24. Denis Courcy

    Consulta SQL

    O correto qui é atribuit o nome da tabel ou um apelido antes da comparação realizada pela cláusula ON do INNER JOIN. Assim sendo, teste isto: SELECT name, username, title, lastvisitDate FROM joomla_users u INNER JOIN joomla_usergroups g ON g.lastvisitDate = u.lastvisitDate Quando usamos INNER JOIN ou LEFT JOIN ou RIGHT JOIN devemos colocar a comparação, com os atributos que realizam a junção das tabelas, na clausula ON e não na cláusula WHERE. Deixe a cláusula WHERE somente para os outros filtros que você desejar. Não é errado a forma como foi colocado pelo Jhonas no post anterior. O código fica mais limpo e funcional fazendo da forma como relato acima.
×
×
  • Criar Novo...