【问题标题】:SQL Query select one row based on results of another rowSQL Query 根据另一行的结果选择一行
【发布时间】:2017-03-14 02:46:31
【问题描述】:

我在表格中包含了一个演示条目的屏幕截图。当所有信息都在同一行时,我知道如何编写 SQL 查询来选择数据,但这对我提出了新的挑战。仅当 pw_user_status 的值为已批准时,我才想将 meta_value 结果选择为 user_id 的 meta_key。我不确定如何编写这种查询。

来源数据:

【问题讨论】:

  • 你能至少告诉我们你的预期输出是什么吗?

标签: php mysql sql


【解决方案1】:

您可以使用子查询来识别具有已批准状态的用户,然后为这些用户选择某些键/值对:

SELECT meta_key, meta_value
FROM yourTable t1
WHERE t1.meta_key IN ('nickname', 'first_name', ...) AND
     EXISTS (SELECT 1 FROM yourTable t2
             WHERE t2.user_id = t1.user_id AND
                   t2.meta_key = 'pw_user_status' AND
                   t2.meta_value = 'approved')

演示在这里:

Rextester

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 2020-09-25
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2018-03-08
    相关资源
    最近更新 更多