Tópico webservers, fóruns, SQL, PHP, ASP, etc

Não percebi...

Não podes explicar melhor?

Se possível com um desenho/esquema?

Por exemplo:

tab1:
id1; campo1; campo2; campo3; campoN;
registos:
1; a; b; c; 8001;
2; e; f; g; 8002;
3; h; i; j; 8003;

tab2:
id2; id1_tab1; campo1; campo2; campo3;
registos:
1; 1; aaa; 5; bbb;
2; 1; sdf; 3; ghj;
3; 2; tyu; 0; qwe;
4; 3; aqw; 2; lkj;

o que resulta dum código parecido ao que coloquei aqui é p.e:

tab1.campoN - tab2.campo2
8001 - 5
8002 - 0
8003 - 2

A ideia seria no 1º registo apresentado em vez de no tab2.campo ser 5 fosse 3 ( em vez do 1º registo, fosse o último registo)
 
Pessoal mais outra dúvida de sql... a partir do código abaixo, consigo obter registos smp que se verifique ali uma relação entre as duas tabelas... agora a minha dúvida é, como faço para utilizar uma condição que verifique que o ultimo registo da tab2 que tem relação com a tab1 é igual a um determinado valor?? atenção que a condição tem que ser feita com o ultimo registo dos vários que tem relação...

select a,b,c
from tab1,tab2
where tab1.id = tab2.idTab1
 
Pessoal mais outra dúvida de sql... a partir do código abaixo, consigo obter registos smp que se verifique ali uma relação entre as duas tabelas... agora a minha dúvida é, como faço para utilizar uma condição que verifique que o ultimo registo da tab2 que tem relação com a tab1 é igual a um determinado valor?? atenção que a condição tem que ser feita com o ultimo registo dos vários que tem relação...

select a,b,c
from tab1,tab2
where tab1.id = tab2.idTab1

Qual é o SGDB que usas? Queres um coisa deste genero:?

select a,b,c
from tab1,tab2
where tab1.id= (select max(rowid) from tab2 where tab2.idTab1=tab1.id)

A sintaxe pode variar em função da base de dados que usas, mas lógica é esta.
 
Dúvida PL/SQL

Dúvida PL/SQL

Para a malta do SQL:

Tenho uma tabela A com 3 números de cliente.
Tenho uma tabela B que contém esses mesmos 3 números de cliente entre muitos outros e outra informação diversa.

Como é que vou buscar todos os registos da tabela B, segundo certas condições, menos os 3 clientes que estão na tabela A?

Buscar os registos da B, no crise, agora sem os 3 registos da A é que 'tá pior :( :confused:

tab A tab B resultado pretendido
3 clientes n clientes n clientes (segundo algumas ccondições) - 3 clientes da A
 
Para a malta do SQL:

Tenho uma tabela A com 3 números de cliente.
Tenho uma tabela B que contém esses mesmos 3 números de cliente entre muitos outros e outra informação diversa.

Como é que vou buscar todos os registos da tabela B, segundo certas condições, menos os 3 clientes que estão na tabela A?

Buscar os registos da B, no crise, agora sem os 3 registos da A é que 'tá pior :( :confused:

tab A tab B resultado pretendido
3 clientes n clientes n clientes (segundo algumas ccondições) - 3 clientes da A

select * from b where cliente not in (select cliente from A)

Assim de repente... dá para fazer de uma forma melhor, mas de repente isto funciona
 
select * from b where cliente not in (select cliente from A)

Assim de repente... dá para fazer de uma forma melhor, mas de repente isto funciona

Se é para utilizar em grandes volumes, esta funciona melhor:

SELECT *
FROM tab1
WHERE NOT EXISTS (SELECT 1 FROM tab2 WHERE tab1.cliente = tab2.cliente)

Cumps.
 
Pois. o meu principal problema chama-se performance, porque uma das tabelas tem 5.5 milhões de registos... ouch!

Há para aqui qualquer coisa estranha, porque me estão a ser devolvidos os 3 registos que não pretendo.

Mas obrigad pelas dicas, vou ver se me amanho! [:cool:]
 
Isso depende da driving table, ou seja, da tabela que o Oracle puser em 1º lugar na execução.

Uma delas tem os 5.5 milhões...e a outra quantos tem?
Pretendes todos da pequena menos 3 da grandes ou o vice-versa?

As tabelas têm índices nas colunas em questão?
 
SELECT *
FROM B
WHERE B.id_cliente <> (SELECT A.id_cliente FROM A WHERE....)
ORDERBY B.Nome ASCENDING;

Qualquer coisa do género. Não sei para que querias PL/SQL, procedimento? trigger?
Se descreveres melhor o problema pode ser que o pessoal te possa ajudar melhor.

Cumprimentos
 
Última edição:
Isto em SQL puro funciona com algo do género (creio que é bom para performance):

SELECT * FROM B WITH(NOLOCK) WHERE ID_CLIENTE NOT IN

(SELECT DISTINCT ID_CLIENTE FROM A)

Já é algo um pouco específic e cuidado, mas creio que sem o with(nolock) e o distinct a coisa funciona. Mas o distinct pode ser que ajude um pouco!!


Pelo menos ideias não faltam! Ah informáticos ai com força!
 
Qual é o SGDB que usas? Queres um coisa deste genero:?

select a,b,c
from tab1,tab2
where tab1.id= (select max(rowid) from tab2 where tab2.idTab1=tab1.id)

A sintaxe pode variar em função da base de dados que usas, mas lógica é esta.

Tenho experimentado e não tem funcionado como eu esperava...
Tou a usar um count que me contasse o nº de registos por nome (group by) em que numa relação inner join entre 2 tabelas, uma reparação (seja la do que for) tivesse várias intervenções, gostava de comparar o resultado da ultima intervenção dessa reparação com determinado valor...

anyone? :(
 
Leet´s em ASP + Javascript ajudem-me!

Leet´s em ASP + Javascript ajudem-me!

Ajudem aqui o noob a arranjar um código que limpe a história do browser. Eu quero uma coisa tipo clear history que só me apague o último site visitado. Eu quero isso porque o utilizador ao fazer um logout num site, o utilizador continua ligado se eu fizer um retroceder, mas se tentar entrar no site pelo browser, ai já não me deixa entrar no site porque não têm login efectuado. Esquesito não? Pensava que o único código necessário na página de logout era este:

<%
Session("user") = "false"
Session.Abandon
Response.Redirect("home.asp")
%>

Já procurei código mas não encontrei nada que funcionasse, se alguém me pudesse ajudar...
 
Depende de como estás a validar o acesso ao site e a variável de sessão.

Mas se fizeres Session("user") = null;
E for condição em todas as páginas do site que seja diferente de null e com um indentificador válido então é suposto conseguires...
 
Depende de como estás a validar o acesso ao site e a variável de sessão.

Mas se fizeres Session("user") = null;
E for condição em todas as páginas do site que seja diferente de null e com um indentificador válido então é suposto conseguires...

Bem agora só na quarta feira é que posso pegar outra vez nisso visto que nem tenho o site em casa e nem tenho um servidor local no meu pc. Vou seguir a tua sugestão. Obrigado[;)]!
 
Software Backup Base dados MySQL

Software Backup Base dados MySQL

Boas pessoal,


Será que alguém sabe de algum software (gratuito ou pago é indiferente) que possa usar para fazer backup a uma base de bados MySql cujo site funciona em PHP? (Percebem assim?) Por razões de segurança gostaria de ter a informação dessa base de dados no meu PC, no caso de algum crash do servidor ou afins ou eventualmente mudar de host e levar a dita base com as informações?? :)


Será que é possível??


Obrigado desde já [;)]
Abraço
Neptuno
 
Última edição:
php não é base de dados...
acho que é mais simples pegares nos ficheiros das base de dados e copiar para outro lado, ou fazer um script que faça isso diariamente.
 
Voltar
Superior