MySQL查询基于另一个查询的结果

标签 mysql sql

我在 MySQL 中有一个表,如下所示。

+---------+------------+--------------+
| user_id |    key     |     value    |
+---------+------------+--------------+
|    1    | full_name  |  John Smith  |
+---------+------------+--------------+
|    1    | is_active  |      1       |
+---------+------------+--------------+
|    1    | user_level |Administrator |
+---------+------------+--------------+

我需要获取 full_name 的值,其中 user_id1,但前提是键的值 is_active 是 1。我可以用 2 个单独的查询来完成,但我想知道是否可以在单个查询中完成。

注意:我无法更改表的结构。

最佳答案

一种方法是使用join:

select tn.value
from t tn join
     t ta
     on tn.user_id = ta.user_id and ta.key = 'active'
where tn.key = 'fullname';

关于MySQL查询基于另一个查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52890976/

相关文章:

mysql - 嵌套表上的级联删除

php - 使用 PDO 在 PHP 和 MySQL 中重用获取的数据

sql - In out 参数在 Mysql 中无法正常工作

mysql - 从订单中选择最后的订单状态

php - 使用sql和php按周获取数据

javascript - 使用 sequelize 获取下一条记录

mysql - mysql 选择速度慢

MySQL 查询没有得到想要的结果

java - 准备好的语句中的串联

python - SQLAlchemy load_only 和 defer