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