2016-11-28 3 views
-2

Mit MySQL muss ich alle Datensätze finden, in denen eine Spalte wie ein Ausdruck ist ODER der Begriff ist gleich einer Spalte, aber in einer anderen Tabelle.SQL, wo der Begriff gleich oder gleich ist (zwei Tabellen)

Zum Beispiel:

select * 
from table_a TA, 
    table_b TB 
where TB.number = '1447' 
    or TA.subject like '%1447%' 

In der Praxis, ich bin für einen Wert suchen, kann es auf TB.number OR TA.subject sein. Diese obige SQL gibt mehrere Datensätze zurück und stimmt nicht mit der Suche überein.

+1

Was sis die gemeinsame Spalte zwischen 'table_a' &' table_b'? – Vikrant

Antwort

1

Ja, Sie brauchen eine JOIN unter dem Tisch auf einer gemeinsamen Spalte zu tun, wie

select * 
from table_a TA 
join table_b TB 
on TA.id = TB.id 
where TB.number = '1447' 
or TA.subject like '%1447%' 
0
select * from table_a TA, table_b TB where TB.number = '1447' 
UNION ALL 
select * from table_a TA, table_b TB where TA.subject like '%1447%' 
0

scheint, wie die beiden Tisch sind mehr oder weniger verwandt. Führen Sie eine UNION ALL statt JOIN:

select * from table_a TA where TA.subject like '%1447%' 
UNION ALL 
select * from table_b TB where TB.number = '1447' 
Verwandte Themen