【发布时间】:2011-02-04 21:22:42
【问题描述】:
我需要一点帮助。
我有(参考?)带有列的表:id , user_id , key , value
这几乎是一个用户个人资料表 我想要有 SQL(我正在使用 zend db 表,但一般的 SQL 帮助会做),我得到“所有 'user_id's where 'key' is somekey and 'value' is somevalue of that user_id but only if it also match其中'key'是otherkey,'value'是othervalue”。
换句话说,我希望获得拥有耐克制造商鞋和颜色黑色的用户。 因此,'key' 是 shoecolor,'value' 是 BLACK,另外一行具有相同 user_id 的'key' 是鞋匠,'value' 是 NIKE。
这是我能想到的,但不起作用。
SELECT `user_profiles`.* FROM `user_profiles` WHERE
(`key` = 'shoecolor' AND `value` = 'BLACK') AND
(`key` = 'shoemaker' AND `value` = 'NIKE')
如果有人在 zend db 中知识渊博:
$where = array('shoecolor' => 'BLACK', 'shoemaker' => 'NIKE');
foreach ($where as $key => $value) {
$sql = $db->quoteInto('key = ?', $key);
$sql .= ' AND ' . $db->quoteInto('value = ?', $value);
$select->where($sql);
}
// make unique result
//$select->groupBy('user_id');
$resultSet = $zendTableInstance->fetchAll($select);
请帮忙。 谢谢。
【问题讨论】:
标签: mysql zend-framework zend-db zend-db-select