mysql代码返回一个空集

标签 mysql database

我相信我知道我的问题出在哪里,但我不确定如何解决它。 我试图找到出发地点与到达地点不同的旅行。但是我编写代码的方式使得它只返回具有相同出发和到达位置的集合。我该如何解决这个问题?我想找到一个从波士顿出发并到达拿骚的旅行,同时避免使用像旅行这样的代码。 DepartureLocCode = "BOS"

 SELECT name
    FROM staff, trip, locations
    WHERE trip.TripNum = staff.TripNum AND staff.DATE = trip.DATE AND trip.DATE = '2015-08-14' 
    AND (trip.ArrivalLocCode = locations.LocationCode AND locations.Location = "Nassau") 
    AND (trip.DepartureLocCode = locations.LocationCode And locations.Location = "Boston"); 

最佳答案

首先:永远不要FROM 子句中使用逗号。 始终使用正确、明确的JOIN 语法。如果您正在学习 SQL,则尤其如此。

不过,您的主要问题是您需要两个连接:

SELECT name
FROM staff s JOIN
     trip t
     ON t.TripNum = s.TripNum JOIN
     locations la
     ON t.ArrivalLocCode = la.LocationCode JOIN
     locations ld
     ON t.DepartureLocCode = ld.LocationCode
WHERE t.DATE = '2015-08-14' AND
      la.Location = 'Nassau' AND 
      ld.Location = 'Boston'; 

关于mysql代码返回一个空集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42104426/

相关文章:

java - GWT - 来自数据库的图像

python - 如何高效创建跨平台1000+条目数据库系统?

php - SQL查询优化

mysql - WordPress 主题选项使用 $wpdb-insert 插入自定义数据库表中

php - 内爆数组的输出不返回第一个实例 (PHP)

php - 如何检查PHP中数据库中是否存在数据? (多种的)

mysql - PhpMyAdmin 问题 'phpmyadmin.pma_table_uiprefs' 不存在

mysql - sql 连接 2 个表的 x 列并合并字段 z

mysql - 如何将 SELECT 语句的返回值传递给存储过程中的 DELETE 查询?

java - HSQLDB:内存表和数据丢失