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

Mysql select查询不会返回准确的结果,mysql,Mysql,我有两个名为User,Holiday的表。 现在我的目标是搜索用户。 我需要从用户表或假日表中的城市按名称搜索用户。 若我按名称搜索,那个么将显示用户表中的名称和假日表中的城市。若我按城市搜索,那个么假日表中的城市和用户表中的他的名字就会显示出来 用户表:: 假日餐桌 我试过以下方法: SELECT * FROM `holiday`,`user` WHERE holiday.UserID=user.UserID an

我有两个名为User,Holiday的表。 现在我的目标是搜索用户。 我需要从用户表或假日表中的城市按名称搜索用户。 若我按名称搜索,那个么将显示用户表中的名称和假日表中的城市。若我按城市搜索,那个么假日表中的城市和用户表中的他的名字就会显示出来

用户表::

假日餐桌

我试过以下方法:

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

但是:(

您不能使用
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%'
SELECT 
  * 
FROM 
  `holiday` h
LEFT JOIN 
 `user` u
ON 
  h.UserID = u.UserID
WHERE
  u.Name like '%Bre%' or h.City like '%Bre%'
尝试:


我想让你用左连接

  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%')
试试这个:

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%'
SELECT 
  * 
FROM 
  `holiday` h
LEFT JOIN 
 `user` u
ON 
  h.UserID = u.UserID
WHERE
  u.Name like '%Bre%' or h.City like '%Bre%'

请注意,对于给定的表,不会返回任何结果。

好的,抱歉,我刚刚发现问题是“where…and…or”,您应该使用“(user.Name,如“%Bre%”或holiday.City,如“%Bre%”)。感谢您的答复。此查询只返回城市名称为“Bre”的行。但只需查看用户表中的用户id 4。用户名为“Breter”。但是他的用户id不在holiday表中。这就是为什么它不显示的原因。但是我也需要显示它。谢谢你的回复。这个查询只返回城市名为“Bre”的行。但是只要看看用户表中的用户id 4。用户名为“Breter”“。但是他的用户id不在假日表中。这就是为什么它不显示的原因。但我也需要显示它。@Rounak真的,在您的案例中它必须是
left join
。谢谢您的回复。此查询只返回城市名为'Bre'的行。但只需查看用户表中的用户id 4。用户的名称是”Breter“.但他的用户名不在假日表中。这就是为什么它不显示。但我也需要显示它。