2014-09-03 60 views
0

我有两个表:MySql的选择两个表statment

用户:

id  name  isSpecial 
1   Tal  1 
2   Jorden  0 
3   John  1 
4   Paige  0 

详情:

id  userId  Country  zipCode 
1   1   Israel  4564 
2   3   US   554654 

我想Jorden的名义来获取用户的所有数据或者如果isSpecial是1将如此显示

结果:

id  name   Country  zipCode 
1   Tal   Israel  4564 
2   Jorden  
3   John   US   554654 

我知道它应该是一个简单的查询,但我不能得到我想要的结果! 任何人都可以帮助我吗?

+0

use'left join' – 2014-09-03 10:05:14

+0

'... where users.id = details.userId and(users.name ='Jorden'OR users.isSpecial = 1)' – JimmyB 2014-09-03 10:05:29

回答

0

您可以使用LEFT JOIN

SELECT 
    u.id, 
    u.name, 
    u.isSpecial, 
    d.country, 
    d.zipCode 
FROM Users u 
LEFT JOIN Detals d 
ON u.id = d.userId 
WHERE u.name = 'Jorden' 
    OR u.isSpecial = 1 
0

像这样

SELECT u.id,u.name,d.country,d.zipCode FROM 
Users u 
LEFT outer JOIN Details d 
ON u.id = d.userId 
WHERE u.name = 'Jorden' OR u.isSpecial = '1' 
0

LEFT JOIN将成为你的目的。

SELECT uObj.ID,uObj.Name,DObj.country,DObj.zipcode FROM用户uObj LEFT JOIN详细DOBJ ON uObj.ID = DObj.userID WHERE uObj.name = 'Jorden' OR uObj.isSpecial = 1 ;

请通过链接下面去

http://www.w3schools.com/sql/sql_join_left.asp

希望这有助于你出去。