我正在尝试进行左连接选择并使用 AND 将列与特定值(即条件)进行比较。
问题是我不知道在哪里添加条件。下面的 medoo 查询返回相同用户 ID 的第一个衬衫 ID,即使所有 'is_wearing_shirt' 设置为 0。然而,常规 mysql 查询返回预期数据。
这是medoo查询:
$db->select('users', array(
'[>]shirts' => array(
'user_id' => 'shirt_owner_id',
'is_wearing_shirt' => 1 // equivalent to AND is_wearing_shirt = 1
)
), array(
'user_id',
'shirt_id(shirt_id_being_worn)'
) , array(
'user_id' => 1,
'LIMIT' => 1
));
// always returns a shirt_id (even if all rows have is_wearing_shirt set to 0, in which case, shirt_id should be null)
这是有效的常规 MySQL 查询:
SELECT u.user_id, s.shirt_id
FROM `cvs_users` u
LEFT JOIN `shirts` s
ON user_id = shirt_owner_id
AND shirt_being_worn = 1
WHERE user_id = 1
//returns the correct shirt_id