SQL Query显示左连接没有结果

时间:2014-11-27 13:58:15

标签: mysql sql left-join resultset

我有以下查询:

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列,对于给定的电子邮件地址,我知道两个属性都是相同的,所以我应该得到一个结果,但我仍然没有得到任何结果......所以这个查询有什么问题?

3 个答案:

答案 0 :(得分:1)

在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%'

答案 1 :(得分:0)

您是否在没有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,那么应该返回一些数据,如果上面的查询中有一些数据

答案 2 :(得分:0)

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

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