我現有的查詢看起來是這樣的:SQL:查詢表格兩次,每個表格的標準不同。
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是「1」,而不是「2 「)。因此,我需要它找到acc_id AS'account'WHERE action_id與它當前正在選擇的記錄相同,其中part_id ='3'。
該查詢將選擇多個記錄,但不會爲每個記錄找到與其他條件匹配的記錄。在這種情況下,它仍然應該返回主記錄,但是其值爲'accounts'。
我的替代方法是用我提供的查詢,然後對於每個結果,再次檢查同一個表SELECT acc_id WHERE action_id = $ action_id AND part_id ='3'。我認爲在一個查詢中一定有辦法做到這一點?
我正在使用MySQL。
感謝Dems,我也學到了很多東西!感謝米奇也,但不幸的是我的知識水平還不夠高,不足以實現你的建議。 –