- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据库中有 3 个表,如下所示:
airlines
+----+-----------------+-------+---------+
| Id | Name | Abbr | Country |
+----+-----------------+-------+---------+
| 1 | United Airlines | UAL | USA |
| 2 | US Airways | USAir | USA |
|... | ... | ... | ... |
+----+-----------------+-------+---------+
airports
+--------------+------+-------------+---------------+-------+
| City | Code | Name | Country | CAbbr |
+--------------+------+-------------+---------------+-------+
| Apalachicola | AAF | Municipal | United States | US |
| Abilene | ABI | US Airways | United States | US |
| ... | ... | ... | ... | ... |
+--------------+------+-------------+---------------+-------+
flights
+---------+----------+--------+-------------+
| Airline | FlightNo | Source | Destination |
+---------+----------+--------+-------------+
| 1 | 28 | APG | ASY |
| 1 | 44 | CVO | ACV |
| ... | ... | ... | ... |
+---------+----------+--------+-------------+
我正在尝试报告边疆航空和捷蓝航空提供服务的所有机场对。每个机场对必须准确报告一次(如果报告 X,Y 对,则 Y,X 对是多余的,不应报告)。
我相信我了解如何分别预订边疆航类和捷蓝航空航类:
SELECT ap1.Code, ap2.Code
FROM flights f, airports ap1, airports ap2, airlines al
WHERE ap1.Code = f.Source
AND ap2.Code = f.Destination
AND f.Airline = al.Id
AND al.Abbr = 'Frontier'
ORDER BY ap1.Code ASC;
SELECT ap1.Code, ap2.Code
FROM flights f, airports ap1, airports ap2, airlines al
WHERE ap1.Code = f.Source
AND ap2.Code = f.Destination
AND f.Airline = al.Id
AND al.Abbr = 'JetBlue'
ORDER BY ap1.Code ASC;
但我不明白如何获得它们之间的交集。我已经尝试过 LEFT JOIN 和 WHERE EXISTS 但我做错了,因为我得到的东西看起来更像是一个 Union 而不是一个 Intersection。这是我最近的尝试(绝对是错误的)。
SELECT ap1.Code, ap2.Code AS code
FROM airports ap1, airports ap2
WHERE
EXISTS (SELECT ap1.Code, ap2.Code
FROM flights f, airports ap1, airports ap2, airlines al
WHERE ap1.Code = f.Source
AND ap2.Code = f.Destination
AND f.Airline = al.Id
AND al.Abbr = 'Frontier') AND
EXISTS (SELECT ap1.Code, ap2.Code
FROM flights f, airports ap1, airports ap2, airlines al
WHERE ap1.Code = f.Source
AND ap2.Code = f.Destination
AND f.Airline = al.Id
AND al.Abbr = 'JetBlue')
ORDER BY ap1.Code ASC;
一旦找到交集,我不太确定如何使 X,Y 对和 Y,X 对不同,因为 DISTINCT 不会将元组识别为相同。
任何帮助将不胜感激。
最佳答案
SELECT apPairs.*, ap1.stuff, ap2.stuff
FROM (
SELECT LEAST(f.Source, f.Destination) AS ap1Code
, GREATEST(f.Source, f.Destination) AS ap2Code
FROM airlines AS al
INNER JOIN flights AS f ON al.Id = f.Airline
WHERE al.Abbr IN ('Frontier', 'JetBlue')
GROUP BY ap1Code, ap2Code
HAVING COUNT(DISTINCT al.Abbr) = 2 -- Served by both airlines
) AS apPairs
INNER JOIN airports AS ap1 ON apPairs.ap1Code = ap1.Code
INNER JOIN airports AS ap2 ON apPairs.ap1Code = ap2.Code
;
我使用 LEAST 和 GREATEST 来合并任何 (X,Y) 和 (Y,X) 冗余;不过,这些函数是 MySQL 特定的,因此在其他 RDBMS 中,您可能需要创建自己的版本。 注意:根据这些数据的使用方式,您可能需要仔细检查 x->y 和 y->x 对确实是冗余的假设;航空公司有可能(至少在现实中)有 X->Y->Z->X 航线,但没有直达 Y->X。
HAVING 子句中的 COUNT(DISTINCT) 确保仅对每个航空公司缩写计数一次,因此 100 个航类不会使数字膨胀。它在查询中的使用可确保您获得由两家航空公司提供服务的机场,而不是任一航空公司。
由于apPairs中的查询已经有了代码,因此您甚至不需要进行外部查询;但我补充说,如果您需要机场表中的信息,但您认为没有必要在问题中指定。
关于mysql - 如何在MySQL中交叉两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56384004/
我想使用单个(交叉)编译器来编译不同 ARM 调用约定的代码:因为我总是想使用浮点和 NEON 指令,所以我只想选择硬浮点调用约定或软浮点(softfp)调用约定。 我的编译器默认为硬浮点,但它支持我
假设我正在构建一个依赖于两个库的 java 应用程序:A 和 B。A 和 B 都依赖于库 C。管理 A 和 B 使用相同版本的最佳方法是什么所以他们不冲突?我正在使用 Gradle。 最佳答案 从 G
我想在按钮的文本上添加图像。如果我将图像添加为按钮的背景,它就会添加到文本下方。预期结果作为图像添加。请帮忙 更新:我需要以编程方式执行此操作。 最佳答案 在 XML 中, * 在代码中
我已经开始使用 CSS3 制作动画了。 我尝试创建一个动画汉堡菜单,但结果有点难看。顶部和底部的条向右平移一点。所以旋转动画不是很流畅和正确。 这是结果 => 这是我的代码: /* HTML */
给定一个具有2条相交曲线的图像,如下图所示,我如何使用opencv或python检测和区分2条曲线? (所以我需要2条单独的曲线) 最佳答案 您可以扫描每一列,并从连接的零件中识别出簇。 伪算法: l
我正在尝试在 redhat 集群(x86_64 主机)上设置 cross-mingw。我没有 root 访问权限,并且可用的 mingw 二进制文件不起作用(坏 glibc 版本等)。我正在阅读本教程
我正在尝试在javaFX中开发一个游戏,当两个图像相交时,分数将被更新,并且障碍物将不可见。但不幸的是,在游戏中分数不断更新。 我想我无法在游戏中正确地使图像不可见。 以下是相关类的完整代码: pac
pikastar dot com 是网站,当向下滚动它然后在导航菜单展开固定位置时它 > 将穿过主 div。我该如何修复它。 #topNav.sticky { box-shadow: 0 10
我正在使用 Eclipse为 ARM 处理器交叉编译 g++ 项目。我在 Windows 环境中使用 yagarto 工具链。我对 C 项目没有问题,但是对于 C++,我一直收到错误: libc.a(
我想从两个哈希数组中获取并集/交集/差集,例如: array1 = [{:name =>'Guy1', :age => 45},{:name =>'Guy2', :age => 45}] array2
有没有办法在调用任何 Controller 操作之前执行一些代码? 我需要根据 get 参数的值设置 session 变量,而不考虑调用哪个 Controller 。 当然,一旦这个处理完成,请求需要
我刚开始使用 3D 网格,面向用于有限元分析。我想在立方体状矩阵中模拟 Material 的夹杂物(任何形状,但主要对球体和椭圆体感兴趣)。这些夹杂物不应彼此重合。 所以我想为python使用某种包,
我想知道以跨平台方式操作应用程序设置的最佳解决方案是什么。 在 iOS 中,我们可以在设置屏幕中更改应用程序外部的设置,但在 windows phone 和 android 中我们没有。 所以,我的想
var barcodeNum = ko.observable(""); VelocityMeetings.scan = function (params) { var errorMessage = k
这个问题在这里已经有了答案: Transforming data.frame in R (2 个答案) 关闭10 年前。 过去我问过一个关于如何create cross tables from a
我有两个共享同一个工厂的 Controller 。其中一个 Controller 正在更新工厂变量。其他人应该注意该变化并稍后显示。 我是这样尝试的: http://plnkr.co/edit/q1N
标题不好,但这是我发现的将我的问题与简单的表格交叉区分开来的方式,因为我之前的研究总是让我接触到这类主题。 我有几个表 - 为了简化起见,我们只用 3 个表来命名它们:A、B、C。我想将它们全部放在一
我需要做这样的事情(在 MySQL 中),我使用 UNION 的尝试直到现在才奏效。 理论上: SELECT * FROM tableA A JOIN tableB B ON A.tableAId =
注意:使用SDL 2.0,Cross header class问题 我在类之间进行交叉引用,主要是我的类初始化渲染器和我的纹理类引用渲染初始化。现在,我已经能够运行该程序,直到我开始放入纹理类,代码也
我有一个这样的字母数组 var letters = ["Y", "X", "A", "Y", "O", "H", "A", "O", "O"]; 我创建了一个循环来
我是一名优秀的程序员,十分优秀!