我有三张桌子 AA、BB 和 CC。BB 和 CC 与表 AA 具有一对一的映射关系(在两个表中都有外键列:aa_id)。提供一个条件,即只有 BB 或 CC 可以引用表 AA 的一行。
我想从 AA 中选择最新的 1000 行,或者加入 BB 或 CC。我可以做单独的查询来分别选择 500 行加入 BB 和 CC 并制作 1000。但这不能保证我从 AA 表中获得最新的 1000 行。
所以,我想出了以下查询,通过同时加入 BB 和 CC 从 AA 中选择记录。但是由于我的限制(只有 BB 或 CC 可以引用表 AA 的一行),我从下面的查询中得到 0 行。
SELECT * FROM AA
INNER JOIN BB ON (
AA.id = BB.aa_id
AND SOME_CONDITION
)
INNER JOIN CC ON (
AA.id = CC.aa_id
AND SOME_CONDITION
)
ORDER BY
AA.id DESC limit 1000;
你能告诉我怎么做吗?有什么办法可以让我 OR 这两个 JOIN 条件?