我正在尝试根据符合特定条件的3列选择多行。对于单个搜索,我执行以下操作:
SELECT user_id
FROM users_to_users
WHERE user_id = '1' AND contact_user_id = '9' AND contact_blocked = 1
我想提交一组值以返回多行。
所以我的价值观就是这样:
('1','9',1),('2,'9',1),('3','9',1)等...
并为匹配的行返回user_id。本质上,我试图查看哪些用户阻止了用户“ 9”,以便随后我可以仅将未阻止的用户添加到下一条语句中。
非常不熟悉SQL,以下是我认为可行的方法:
SELECT user_id
FROM users_to_users
WHERE (user_id, contact_user_id, contact_blocked) VALUES (...)
但是无法做到这一点。有什么方法可以根据多个列的匹配条件选择多个行吗?
答案 0 :(得分:3)
您是否要在in
中使用元组?如果是这样,这行得通:
SELECT user_id
FROM users_to_users
WHERE (user_id, contact_user_id, contact_blocked) in ( (1, 9, 1), (2, 9, 1), (3, 9, 1) )
但是,还有其他方法可以实现您的最终目标。