【发布时间】:2018-10-04 19:18:47
【问题描述】:
我有两个 sql 查询,我需要它们之间的相交。我知道 mysql 没有 intersect 操作数,那我该怎么做呢?尝试了一些我在网上找到的解决方案,但它们都返回了一些语法错误。查询是:
SELECT person_name FROM person NATURAL JOIN (
SELECT * FROM movie NATURAL JOIN role WHERE movie_name = 'Alien'
) alias1
SELECT person_name FROM person WHERE gender = 'f'
【问题讨论】:
-
person和movie表有什么关系? -
自然联接很方便,但不如其他联接(使用 ON 或 USING 条件)稳定,并且不会为此类问题间接记录您的表。
-
您可以通过使用ON条件与两个表之间的公共列连接来实现它。
-
您可以只将第二个查询中的 WHERE 子句添加到第一个查询中。
-
什么版本的 MySQL? 5.x 还是 8.x?