2017-03-26 2 views
0

Ich habe 2 Tabellen:SQL - Wenn der Wert in anderer Tabelle vorhanden

Table A:   Value 1:   Value 2: 
id (int)   1     2 
from (varchar)  josh    robert 

Table B:   Value 1:   Value 2: 
id (int)   1     2 
name (varchar)  josh    robert 
surname (varchar) apple    orange 

Und es ist ein Schlüsselwort "apple". So wählen Sie id aus Tabelle A, wenn ein Wert aus Tabelle B surname mit dem Schlüsselwort "apple" enthält. In diesem Fall sollte das Ergebnis 1 (aus Tabelle A) sein, da josh das Schlüsselwort apple hat.

Das ist, was ich getan habe:

mysql_query("SELECT id FROM A WHERE from IN (SELECT name FROM B WHERE surname LIKE '%apple%')");` 

aber es funktioniert nicht.

Antwort

0

from ist ein reserviertes Schlüsselwort verwenden. Entfliehen Sie es:

select id 
from A 
where `from` in (
     select name 
     from B 
     where surname like '%apple%' 
     ) 

Sie können auch verwenden beitreten:

select a.id 
from a 
join b on a.`from` = b.name 
where b.surname like '%apple%' 
+0

Oh, vielen Dank! =) – Scripy

0

Sie können JOIN, z.B .:

SELECT ta.id 
FROM tableA ta JOIN tableB tb ON ta.`from` = b.name 
WHERE tb.surname = 'apple'; 
Verwandte Themen