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,或者他们可以在交易合作伙伴中拥有一行,在那里他们与交易相关联。
以上对我有用,但由于我拥有的交易合作伙伴的数量,给了我多个相同的交易。我把它做成了左连接,我不明白为什么它仍然不断地从交易伙伴那里抢行?
更新:
表:交易,列:ID、标题、名称、partner_id
表deal_partners,列:deal_id,partner_id
我想显示合作伙伴 222 的交易。要找出合作伙伴有哪些交易,他的 partner_id 可以在交易行中的 partner_id 列中,或者他可以在 deal_partners 中有一行,其中他的 partner_id 链接到 deal_id。