mysql - SQL - 如果值存在于其他表中

标签 mysql sql

我有 2 张 table :

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”的 surname,如何从表 A 中选择 id。在本例中,结果应为 1(来自表 A),因为 josh 具有关键字 apple

这就是我所做的:

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

但它不起作用。

最佳答案

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

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

您还可以使用加入:

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

关于mysql - SQL - 如果值存在于其他表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43032544/

相关文章:

SQL 查询聚合可能不会出现在 WHERE 子句 (AVG) 中

php - 检查用户名是否存在于Android代码中

php - 将 SQL 值存储为 PHP 变量 ("Object of class mysqli_result could not be converted to int")

mysql - 左/右连接性能

c# - ASP.net Core MVC 登录

sql - 比较不同记录之间的两个日期

java - 如何在 Java 中获取所有 SQL 关键字?

php - 关于存储/检索复杂页面数据的问题

mysql - SQL 连接并获取另一列

java - 如何使用deleteRow()方法从多个表中删除行