SELECT deals.id,
deals.partner_id
FROM deals
LEFT JOIN deals_partners
ON ( deals.id = deals_partners.deal_id )
WHERE 1
AND ( `deals`.`partner_id` = 222
OR CASE
WHEN deals.partner_count = 1 THEN
deals_partners.partner_id = 222
end )
ORDER BY deals.id ASC
パートナーに関連付けられている取引を取得したいと考えています。
彼らは取引のマスター、deals.partner_id = 222 になるか、取引にリンクされる deal_partners に行を持つことができます。
上記は私にとってはうまくいきますが、私が持っている deal_partners の数のために、同じ取引が複数得られます。左結合にしましたが、deals_partners から行を取得し続ける理由がわかりません。
アップデート:
表:取引、列: ID、タイトル、名前、partner_id
テーブルdeal_partners、列: deal_id、partner_id
パートナー222の取引を表示したいと思います。パートナーがどの取引を行っているかを調べるには、彼の partner_id を取引行の partner_id 列に入れるか、deals_partners の行にパートナー ID が deal_id にリンクされているようにします。