私の既存のクエリは次のようになります。
SELECT
id,
refid,
action_id,
action_type,
co_user_id,
cust_vend_id,
Aes_decrypt(cust_vend_name, '".DBKEY."') AS cust_vend_name,
Aes_decrypt(amount, '".DBKEY."') AS amount,
Aes_decrypt(action_date, '".DBKEY."') AS action_date,
Aes_decrypt(memo, '".DBKEY."') AS memo,
Aes_decrypt(trans_id, '".DBKEY."') AS trans_id,
part_id,
polarity
FROM generated_actions
INNER join
generated_actions.action_id AS action_id
ON
(generated_actions.action
WHERE acc_type = 2
AND acc_id = $ba_id
AND reverse_id IS NULL
ORDER BY action_id,
Aes_decrypt(action_date, '".DBKEY."'),
entry_datetime ;
ただし、選択するレコードごとに、レコードから別の列を返す必要があります。そうしないと、除外されます(acc_idは「2」ではなく「1」であるため)。したがって、acc_id AS'アカウント'を見つけるために必要です。ここで、action_idは、現在選択しているレコードと同じであり、part_id='3'です。
クエリは複数のレコードを選択しますが、追加の基準のすべてのレコードに一致するものは見つかりません。その場合でもメインレコードを返す必要がありますが、'accounts'の値としてnullを使用します。
別の方法として、提供されたクエリを使用し、結果ごとに同じテーブルをもう一度確認します。SELECT acc_id WHERE action_id = $ action_id AND part_id='3'。1つのクエリでこれを行う方法があるはずだと思いますか?
MySQLを使用しています。