获取具有相同属性的用户(MySql查询)

时间:2015-03-05 02:46:40

标签: mysql sql

我有2个表,如下所示,我想搜索有车辆"摩托车" AND" car",与表相关,搜索结果应该只显示(1)john,而不是(3)标记,因为我想" AND"不是"或"。

如何使用MySQL查询完成?

JOIN 2 TABLES

select * from members m left join properties p on m.user_id = p.user_id where concat_ws(',',property,value) in ('vehicle,motorbike','vehicle,car')

3 个答案:

答案 0 :(得分:0)

使用HAVING子句:

SELECT 
      A.user_id,
      name,
      property
FROM members A
INNER JOIN properties B
ON A.user_id=B.user_id
WHERE value IN ('motorbike','car')
GROUP BY A.user_id,name,property
HAVING COUNT(A.user_id)<>1

答案 1 :(得分:0)

试试这个:

select name from members m, properties p where m.user_id=p.user_id and p.value="moterbike" and p.value="car";

答案 2 :(得分:0)

尊重,

我认为如果我们使用示例,它会给出错误的结果,因为某个时间值可以在同一个用户中拥有2个或更多的汽车

加入示例不检索任何记录

我的回答是这个

SELECT cc.*,mem.name
FROM
(SELECT user_id
FROM propoties
WHERE value='car') cc
JOIN
(SELECT userid
FROM properties
WHERE value='moterbyke') mb ON cc.userid=mb.userid
JOIN member mem ON cc.memberid=mem.memberid