Mysql select查询不会返回确切的结果

时间:2012-09-04 06:59:22

标签: mysql

我有两个名为User,Holiday的表。 现在我的目标是搜索用户。 我需要通过假期表中的用户表或城市的名称搜索用户。 如果我按名称搜索,则应显示来自用户表的姓名和来自假期表的他的城市。如果我按城市搜索,则从假日表中搜索城市,并显示用户表中的名称。

用户表::

假期表 enter image description here

我尝试了以下内容::

          SELECT * FROM `holiday`,`user` 
          WHERE holiday.UserID=user.UserID 
                and user.Name like '%Bre%' 
                or holiday.City like '%Bre%'

但是:(

4 个答案:

答案 0 :(得分:2)

我希望你使用LEFT JOIN,

  SELECT user.Name,holiday.City FROM  `user` LEFT JOIN `holiday`
                  ON user.UserID  =holiday.UserID
                        WHERE (user.Name like '%Bre%' 
                        or holiday.City like '%Bre%')

答案 1 :(得分:0)

您无法使用select *,因为有些列在两个表中具有相同的名称,例如UserID。

试试这个:

SELECT `user`.userID, `user`.Name, `holiday`.city 
FROM `holiday`,`user` 
WHERE holiday.UserID=user.UserID 
      and user.Name like '%Bre%' 
      or holiday.City like '%Bre%'

答案 2 :(得分:0)

尝试:

      SELECT * FROM `user` left join `holiday` on holiday.UserID=user.UserID 
      WHERE user.Name like '%Bre%' 
            or holiday.City like '%Bre%'

答案 3 :(得分:0)

试试这个:

SELECT 
  * 
FROM 
  `holiday` h
LEFT JOIN 
 `user` u
ON 
  h.UserID = u.UserID
WHERE
  u.Name like '%Bre%' or h.City like '%Bre%'

注意,给定您的表没有返回结果。