当一个为空时,来自两个表的mysql请求

时间:2013-05-04 12:57:40

标签: php mysql database request left-join

我有两张桌子。如果我的第二个表是空的,那么我的请求会返回零行 - 首先 - 不是......我怎么能解决这个问题?

表:用户

id username name   email
1  myuname  myname myemail@domain.com

表:帐户

customerid phone params
1          +1111 NULL

我的sql请求如下:

SELECT 
A.phone, 
A.params, 
U.email, 
U.username, 
U.name 
FROM `account` A, `users` U 
WHERE A.customerid = U.id LIMIT 1';

如果我的帐户表为空且用户表不是,则上面的请求返回零行... 我怎么解决这个问题? 感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用LEFT JOIN:

SELECT 
    A.phone, 
    A.params,
    U.email, 
    U.username, 
    U.name 
FROM
    `account` A LEFT JOIN `users` U ON A.customerid = U.id
LIMIT 1

LEFT JOIN将选择第一个表中的所有行,只选择第二个表中匹配的行。如果没有匹配,则U.email,U.username和U.name将为NULL。

答案 1 :(得分:1)

你需要LEFT JOIN你的桌子。

'account' a LEFT JOIN 'users' u ON u.id = a.customerid

答案 2 :(得分:0)

试试这个

SELECT 
    A.phone, 
    A.params,
    U.email, 
    U.username, 
    U.name 
FROM account a 
LEFT JOIN users as u ON u.id = a.customerid;