SQL Query根据另一行的结果选择一行

时间:2017-03-14 02:46:31

标签: php mysql sql

我在表格中添加了一个演示条目的屏幕截图。我知道当所有信息都在同一行时,如何编写SQL查询来选择数据,但这给我带来了新的挑战。我想仅在pw_user_status具有approved值时才为meta_key选择meta_value结果。我不确定如何编写这种查询。

来源数据:

enter image description here

1 个答案:

答案 0 :(得分: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