このmysqlテーブルがあります(下の画像のように)。IDでグループ化されたIDを選択したい
ここで:
datakey = label および datavalue = is_member と同時に
、ここで:
datakey = since および datavalue = 20110204
したがって、最終結果は105になります。
どうすればこれを達成できますか?
このmysqlテーブルがあります(下の画像のように)。IDでグループ化されたIDを選択したい
ここで:
datakey = label および datavalue = is_member と同時に
、ここで:
datakey = since および datavalue = 20110204
したがって、最終結果は105になります。
どうすればこれを達成できますか?
参加せずにこれを達成できるはずです。 http://www.sqlfiddle.com/#!2/ca8d6/1
SELECT t.id
FROM table_name t
WHERE (datakey = 'Label' AND datavalue = 'is_member') OR (datakey = 'Since' AND datavalue = '20110204')
GROUP BY t.id
HAVING COUNT(datakey) = 2;
これはあなたが必要なものを手に入れるはずです
SELECT
a.id
FROM
some_table AS a
JOIN some_table AS b
ON
b.id = a.id
WHERE
a.datakey = 'Label'
AND
a.datavalue = 'is_member'
AND
b.datakey = 'Since'
AND
b.datavalue = '20110204'
ここでの前提は、フィールドid
が同じデータセットを参照しているということです。