Doubt SELECT Mysql

-1

In a given select I can reference two tables by foreign keys.

Ex: IdA / IdB

IdA = IdB

Table A has a column named C
Table B has three columns called D, E, F
Both tables have similar contents for returns in SELECT

Ex:

Select ... from table A a, table B b Where a.IdA = b.IdB and a.C = b.D and a.C = b.E and a.C = a.F...

When I put the condition And returns null When I put OR returns incomplete data, PQ?

    
asked by anonymous 19.09.2018 / 13:06

2 answers

1

When you use "and" all combinations have to be true (same in your case).

In the OR, the operation response is true (1) if at least one of the input variables is true.

That's why no works and no is giving null

    
19.09.2018 / 13:14
0

 
Quando vc usa "AND", a busca retorna tudo que seja igual. Nesse caso, a.IdA = b.IdB "AND" a.C = b.D;
Isso esta dizendo que o resultado de que une a referencia a.IdA e b.IdB deve ser igual ao que une a.C e b.D;
No seu "WHERE" você esta fazendo isso para todas as tabelas a.IdA = b.IdB and a.C = b.D and a.C = b.E and a.C = a.F;
Logo, só vai ter um resultado, se por exemplo:
a.IdA = 1
b.IdB = 1
a.C = "TESTE"
b.D = "TESTE"
a.C = "TESTE"
b.E = "TESTE"
a.C = "TESTE"
a.F = "TESTE"
Quando você usa "OR", esta falando que pode retornar qualquer informação valida, exemplo:
a.IdA = 1
b.IdB = 1
a.C = "TESTE2"
b.D = "TESTE3"
a.C = "TESTE2"
b.E = "TESTE5"
a.C = "TESTE2"
a.F = "TESTE2"
Os resultados possíveis para " Where a.IdA = b.IdB or a.C = b.D or a.C = b.E or a.C = a.F"
1, TESTE2;
Aconselho usar "INNER" (join,left,right,outer), para unir tabelas de forma simples e organizada.
 
    
19.09.2018 / 15:21