我有两个名为User,Holiday的表。 现在我的目标是搜索用户。 我需要通过假期表中的用户表或城市的名称搜索用户。 如果我按名称搜索,则应显示来自用户表的姓名和来自假期表的他的城市。如果我按城市搜索,则从假日表中搜索城市,并显示用户表中的名称。
用户表::
假期表
我尝试了以下内容::
SELECT * FROM `holiday`,`user`
WHERE holiday.UserID=user.UserID
and user.Name like '%Bre%'
or holiday.City like '%Bre%'
但是:(
答案 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%'
注意,给定您的表没有返回结果。