MySQL只选择某一行

I have this weird problem. For some reason only certain row is selected. I have this user_data table: enter image description here

and website_name table enter image description here

For some reason with this command using user id 13 it works:

enter image description here

but using user id 27 it didn't but you can see I add #27 in email_id row gumblar.cn.

enter image description here

Why it won't work with id 27? I'm using this command:

SELECT `email_address`, `handset` FROM `website_name` JOIN `user_data` USING ( id ) WHERE `email_id` ='27'

Any help and explanation is appreciated. Thanks in advance.

You have a coincidence that id == email_id for 13, you need to change

USING ( id )

to

ON (website_name.email_id = user_data.id)

EDIT:

In your table, you see the row:

id | website   |email_id
---+-----------+--------  
13 | yahoo.com | 13

You see how id is the same as the email_id? That is just a coincidence, and is why it worked for that number (you are joining on id, which just so happens to match the email_id, which is what you SHOULD be joining on).

Your SQL should look like:

 SELECT `email_address`, `handset` 
 FROM `website_name` 
     JOIN `user_data` ON (website_name.email_id = user_data.id) 
 WHERE `email_id` ='27';

You're joining with the id 18 and non of your users has the id 18.

You need to join it with a on statement:

join user_data on user_data.id = website_name.email_id

Both of your tables contain a field id - but, obviously, they identify different things (emails and websites, respectively). This is why your JOIN cannot use the id field to produce sensible results (that it worked for 13 is only coincidental and the query result does not make sense). You need to use

JOIN user_data ON website_name.email_id = user_data.id

A different approach would be to rename the id fields to email_id and website_id. Then, you could use JOIN user_data USING(email_id).