我有两张桌子。如果我的第二个表是空的,那么我的请求会返回零行 - 首先 - 不是......我怎么能解决这个问题?
表:用户
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';
如果我的帐户表为空且用户表不是,则上面的请求返回零行... 我怎么解决这个问题? 感谢。
答案 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;