SQL - 如果其他表中存在值

时间:2017-03-26 18:03:18

标签: mysql sql

我有两张桌子:

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

还有一个关键字" apple"。如果表B中的某些值包含带有关键字" apple"的id,如何从表A中选择surname。在这种情况下,结果应为1(来自表A),因为josh具有关键字apple

这就是我的所作所为:

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

但它没有用。

2 个答案:

答案 0 :(得分:0)

您可以使用JOIN,例如:

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

答案 1 :(得分:0)

from是保留关键字。逃避它:

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

您也可以使用join:

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