【发布时间】:2017-03-14 02:46:31
【问题描述】:
我在表格中包含了一个演示条目的屏幕截图。当所有信息都在同一行时,我知道如何编写 SQL 查询来选择数据,但这对我提出了新的挑战。仅当 pw_user_status 的值为已批准时,我才想将 meta_value 结果选择为 user_id 的 meta_key。我不确定如何编写这种查询。
来源数据:
【问题讨论】:
-
你能至少告诉我们你的预期输出是什么吗?
我在表格中包含了一个演示条目的屏幕截图。当所有信息都在同一行时,我知道如何编写 SQL 查询来选择数据,但这对我提出了新的挑战。仅当 pw_user_status 的值为已批准时,我才想将 meta_value 结果选择为 user_id 的 meta_key。我不确定如何编写这种查询。
来源数据:
【问题讨论】:
您可以使用子查询来识别具有已批准状态的用户,然后为这些用户选择某些键/值对:
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')
演示在这里:
【讨论】: