0

次のクエリを取得しました。

    SELECT      ur.repair_id, ur.repair_complete, ur.repair_noted_by_client, ur.repair_problem, ur.added_at, ur.added_by, ur.repaired_at, ur.repaired_by,
                aa.account_fullname AS added_by_name,
                ar.account_fullname AS repaired_by_name
    FROM        units_repairs AS ur
    LEFT JOIN   (SELECT account_id, account_fullname FROM accounts LIMIT 1) AS aa ON aa.account_id = ur.added_by
    LEFT JOIN   (SELECT account_id, account_fullname FROM accounts LIMIT 1) AS ar ON ar.account_id = ur.repaired_by
    WHERE       ur.unit_id = 1

の場合にのみフルネームを返しaccount_id = 1ます。repaired_by = 2言わせてもらえばNULL...

ありがとう、何が欠けているのかわからない。

4

2 に答える 2

1

内部クエリに参加しています:

SELECT account_id, account_fullname FROM accounts LIMIT 1

ここでLIMIT 1、1行のみを提供します(おそらくrepaired_by = 1です)。次に、repaired_byが2である行のみをフィルタリングして取得したい...そしてあなたはその行を持っていません。

于 2012-10-19T16:24:15.633 に答える
0

repaired_by = 2たぶん行内に条件を満たすレコードはなく、

 LEFT JOIN   (SELECT account_id, account_fullname FROM accounts LIMIT 1) AS ar ON ar.account_id = ur.repaired_by

したがって、ar.account_id = ur.repaired_byNULL を返します。

于 2012-10-19T16:23:42.527 に答える