如何 select 映射不在另一个 table 中的数据

How to select mapped data which are not in another table

tableA
Aid | Aname     |
1   | univer    |
2   | teaser    |

tableB
Bid | Bname |
66  |  ako  |
77  | fas   |
88  | yh    |

tableA 中的值应与 tableB 中的所有值映射

 tableC
 Aid | Bid  |
 1  | 66    |
 1  | 88    |
 2  | 66    |
 2  | 77    |

现在我想 select tableA 中映射到 tableB 中但不在 tableC 中的值。 例如,我想找到 Aid=1Bid=77,因为它们在 tableC 中找不到, 再次查找 Aid=2Bid=88,因为它们未在 tableC.

中找到
EXPECTED RESULTS
    Aid |   Bid |
    1   |   77  |
    2   |   88  |

你可以用一个cross join生成所有的排列,然后你可以使用not exists运算符过滤掉tablec中已经存在的排列:

SELECT     aid, bid
FROM       tablea a
CROSS JOIN tableb b
WHERE      NOT EXISTS (SELECT *
                       FROM   tablec c
                       WHERE  c.aid = a.aid AND c.bid = b.bid)

示例结果:

AID BID
1   77
2   88

结果 SQL Fiddle