我有2个表,如下所示,我想搜索有车辆"摩托车" AND" car",与表相关,搜索结果应该只显示(1)john,而不是(3)标记,因为我想" AND"不是"或"。
如何使用MySQL查询完成?
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')
答案 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