查询以选择匹配ID和其他2个不同的ID

时间:2016-01-26 03:50:26

标签: php mysql

我需要一个查询,它将选择与该类别匹配的三个不同的行和一个匹配的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

谢谢!

1 个答案:

答案 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_id3的记录,第二个查询将保留最多2条记录,category_id也是1但{ {1}} user_id