繁体   English   中英

SQL查询显示左联接没有结果

[英]SQL Query shows no result with left join

我有以下查询:

SELECT u.user_id, u.username, u.email
                   hp.homepage_id
              FROM table_u u
              LEFT JOIN table_hp hp
                ON (u.user_id = hp.user_id)
             WHERE u.blocked = 'N'
               AND u.email LIKE 'someemailaddress'

我正在加入user_id列,对于给定的emailadress,我知道两个属性都相同,因此我应该得到一个结果,但仍然没有任何结果...所以此查询出了什么问题?

在LIKE子句的前后放置'%'-参见下文

SELECT u.user_id, u.username, u.email
                   hp.homepage_id
              FROM table_u u
              LEFT JOIN table_hp hp
                ON (u.user_id = hp.user_id)
             WHERE u.blocked = 'N'
               AND u.email LIKE '%someemailaddress%'

您是否尝试了没有LEFT JOIN的查询?

SELECT u.user_id, u.username, u.email 
FROM table_u u 
WHERE u.blocked ='N' 
AND u.email LIKE 'someemailaddress'

它返回任何结果吗? 因为LEFT JOIN只是将数据添加到“基本表”中的现有数据中..因此,如果LEFT JOIN在table_hp中未找到任何user_id,则应该返回一些数据,如果上面的查询中有一些数据

关键是如何在数据库中存储一些数据...似乎在应用程序的旧(原始)版本中存储的数据没有适当的修整等。问题是该字段使用空格存储...

愚蠢...应该/必须检查已存储的实际数据...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM