1

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

用户表::

假期表 在此处输入图像描述

我尝试了以下方法::

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

但 :(

4

4 回答 4

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%')
于 2012-09-04T07:06:45.723 回答
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%'
于 2012-09-04T07:04:00.767 回答
0

尝试:

      SELECT * FROM `user` left join `holiday` on holiday.UserID=user.UserID 
      WHERE user.Name like '%Bre%' 
            or holiday.City like '%Bre%'
于 2012-09-04T07:04:24.697 回答
0

试试这个:

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

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

于 2012-09-04T07:07:49.480 回答