0

メインクエリがヒットを返さなくても、サブクエリからデータを取得できるかどうか疑問に思っていますか?

$query = "SELECT `affiliateID`, `password`, `companyName`, `contactName`,
(SELECT loginAttempts FROM lockoutRecord WHERE attemptedUsername = '$user' AND accountType = 'Affiliate' ) as attemptCount,
(SELECT lastAttemptTime FROM lockoutRecord WHERE attemptedUsername = '$user' AND     accountType = 'Affiliate' ) as lastAttemptTime
FROM `affiliates` WHERE `email` = '$user' LIMIT 1"; 

上記の例では、ユーザーのログイン試行はアフィリエイト テーブルでそのユーザーのヒットを検出しませんが、lockoutRecord から loginAttempts を返して、そのユーザー名で何回試行が行われたかを確認したいと考えています。

ご覧いただきありがとうございます。

4

1 に答える 1

1

可能な解決策

SELECT affiliateID, password, companyName, contactName, loginAttempts, lastAttemptTime
FROM
(
    SELECT '$user' user 
) u LEFT JOIN affiliates a 
    ON u.user = a.email LEFT JOIN
(
    SELECT attemptedUsername, loginAttempts, lastAttemptTime
      FROM lockoutRecord 
     WHERE accountType = 'Affiliate' 
) l ON u.user = l.attemptedUsername

出力例:

| | アフィリエイトID | パスワード | 会社名 | 連絡先名 | ログイン試行 | LASTATTEMPTTIME |
-------------------------------------------------- ----------------------------------------------
| | (ヌル) | (ヌル) | (ヌル) | (ヌル) | 2 | 2013-08-09 13:00:00 |

これがSQLFiddleのデモです

于 2013-08-09T08:29:30.517 に答える