MySQL从另一个表中获取数据,其中列行与第一个表中的行结果匹配

标签 mysql sql sql-server

我有 2 个表,假设它们包含:

表1

id | username

1  | Bla
4  | Bla2

表2

FROM_ID | FK_TOID | Action

1       | 2       | -1
4       | 2       | -1

现在我所拥有的就是这样的:

SELECT FK_FROMID FROM table2 WHERE FK_TOID = 2 AND FP_ACTION = -1

我想要做的是从 table1 中获取 id 和用户名,其中 table1 的 id 与 table2 中的 FROM_ID 匹配,其中 table2 中的 FK_TOID 为“2”。

所以基本上返回的结果应该是这样的

[{ id: 1, FK_FROMID: 1, 用户名: Bla }, { id: 4, FK_FROMID: 4, 用户名: Bla2 }]

最佳答案

您需要这个:

SELECT A.id,B.from_id as FK_FROMID,A.username
FROM t1 A
LEFT JOIN t2 B
ON A.id=B.from_id

点击此链接查看结果:

http://sqlfiddle.com/#!2/868c1/4

更新:1

    SELECT A.id,B.from_id as FK_FROMID,A.username
    FROM t1 A
    LEFT JOIN t2 B
    ON A.id=B.from_id 
    WHERE B.fk_toid=2 AND B.action=-1;

检查此链接:

http://sqlfiddle.com/#!2/868c1/8

关于MySQL从另一个表中获取数据,其中列行与第一个表中的行结果匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22952454/

相关文章:

c# - 我已将 cnic 从 tbl_1 复制到 tbl_2,如果 tbl_2 中存在 cnic,则将密码存储在 tbl_2 中。但密码没有存储在 tbl_2 中

php - 我可以在 PHP 中混合使用 MySQL API 吗?

sql-server - 无法在容器中连接,因为 "The evaluation period has expired"

SQL Server 连接复杂子查询

sql - 为什么 CREATE PROCEDURE 命令中允许使用 DEFAULT 关键字

在 WHERE 子句中使用变量时 PHP MySQL 结果问题

php - Yii2 - ActiveRecord - 类型转换

mysql - 如何过滤两列之间的一组数字?

java - 无法在 SQL Server 中插入查询

MySQL 数组/项目列表和性能