使用INNER JOIN进行查询

时间:2015-05-10 18:15:26

标签: java mysql sql

创建了表并插入了一些数据我试图在JOIN INNER的帮助下从route表中获取arrivaltimes但是我什么也没收到我已经尝试调整时间到当前时间到达时间表,但结果总是空的。我没有收到任何错误。我的查询有问题吗?

    CREATE TABLE IF NOT EXISTS stops
                        (stop_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
                         name varchar(30) NOT NULL,
                         lat double(10,6) NOT NULL, 
                        longi double(10,6)NOT NULL)

CREATE TABLE IF NOT EXISTS arrivaltimes
  (arrivaltimes_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  weekday VARCHAR(20) NOT NULL,
  route INT(11) NOT NULL, 
  arrivaltime time NOT NULL,
   stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id) )


SELECT route from arrivaltimes INNER JOIN stops ON  arrivaltimes.stop_id=stops.stop_id where arrivaltime = now()

enter image description here

1 个答案:

答案 0 :(得分:0)

arrivaltime的数据类型为time,其格式为H:i:s

在您使用now()的where子句中,它的格式为Y-m-d H:i:s

您需要使用curtime功能。

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2015-05-10 23:46:44 |
+---------------------+
1 row in set (0.00 sec)

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 23:46:53  |
+-----------+
1 row in set (0.00 sec)


where arrivaltime = curtime()