0

私は2つのテーブルを持っています。そして、私の2番目のテーブルが空で最初の場合、私のリクエストはゼロ行を返します-そうではありません...どうすればこの問題を解決できますか?

表: ユーザー

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

アカウント テーブルが空で、ユーザー テーブルが空でない場合、上記のリクエストはゼロ行を返します... どうすればこの問題を解決できますか? ありがとう。

4

3 に答える 3

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 は、最初のテーブルからすべての行を選択し、一致する 2 番目のテーブルの行のみを選択します。一致しない場合、U.email、U.username、および U.name は NULL になります。

于 2013-05-04T12:59:43.953 に答える
1

LEFT JOINあなたはあなたのテーブルに必要です。

'account' a LEFT JOIN 'users' u ON u.id = a.customerid
于 2013-05-04T12:59:05.460 に答える