匹配来自多个表的数据

时间:2014-03-13 05:53:51

标签: mysql

我有4张桌子:

登录,其中包含用户ID,姓名,通行证,电子邮件列 phyinfo ,包含用户ID,身高,肤色,种族,性别,体型的列 loc ,其中包含用户ID,国家/地区,州,城市列 和
使用列userid,具有技能值索引(以逗号分隔)的技能列表技能

现在我想按所有人搜索用户(例如: height = 5'21“+ gender = male + country = india + skills = design

我不知道如何使这个混合查询返回匹配条件的用户ID。请帮忙

这是我到目前为止所尝试的查询:

SELECT userid 
 FROM phyinfo 
 WHERE height='5\'21"' AND gender='male' 
 UNION 
  SELECT userid 
  FROM loc 
  WHERE country='india' 
  UNION 
   SELECT userid 
   FROM skills 
   WHERE FIND_IN_SET(8 , skillslists) 

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT L.userid,L.name,L.pass,L.email
FROM login L INNER JOIN
   phyinfo P on L.userid=P.userid INNER JOIN
   loc on L.userid=loc.userid INNER JOIN
   skills S on S.userid=L.userid
WHERE P.height='5''21"' AND P.gender='male' AND loc.country='india' AND S.skillslists LIKE '%design%'