简体   繁体   中英

SQL Query shows no result with left join

I have the following query:

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'

I am joining on the user_id column, for the given emailadress I know both properties are the same so I should get a result but still I don't get any result... so what is wrong with this query?

Put the '%' before and after in the LIKE clause - see below

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

Did you try the query without LEFT JOIN ??

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

Does it return any result? Cause LEFT JOIN just append data for the existing data from your "base table" .. so if the LEFT JOIN didn't find any user_id in table_hp there should be some data returned, if there are some from the query above

The point was how some data was stored in the database... Seems that in an old (buggy) version of the application data was stored without decent trimming etc. The issue was the field was stored in with a whitespace...

Stupid... should/must had checked the actual data that was stored...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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