我需要一个查询,它将选择与该类别匹配的三个不同的行和一个匹配的ID,总共有3个结果。
例如,我有一个名为users的表:
用户:
user_id user_name category_id 1 Sally 1 2 Martin 1 3 Mary 1 4 John 1 5 Phil 1 6 Erik 1 7 Joanna 2
正如您所看到的,除了Joanna之外的所有用户都属于类别1.我需要一个查询,其中从category_id
1中选择了总共三个用户,但是在这三个结果中,用户必须是user_id
3。
只需一次查询就可以完成吗?
这就是我提出的,但这些都不起作用:
SELECT user_name FROM users WHERE category_id=1 AND user_id=3 LIMIT 3
或
SELECT user_name FROM users WHERE category_id=1 AND (user_id=3 or user_id!=3) LIMIT 3
我需要查询从category_id
1中选择三个用户,其中一个必须是user_id
3
谢谢!
答案 0 :(得分:4)
我认为提取UNION
两个查询是个不错的选择:
SELECT user_name
FROM users
WHERE category_id=1 AND user_id=3
UNION
SELECT user_name
FROM users
WHERE category_id=1 AND user_id <> 3
LIMIT 2
第一个查询将返回user_id
为3
的记录,第二个查询将保留最多2条记录,category_id
也是1
但{ {1}} 不 user_id
。