2016-04-06 72 views
0

我對SQL相當陌生,想知道是否有辦法簡化我的一個SQL查詢。如何簡化我的SQL查詢

SELECT 
    ships.ship_name, 
    ships.company_name, 
    ports.port_name, 
    ports.port_country, 
    port_days.port_date AS port_days 
FROM 
    port_days, ships, ports 
WHERE 
    port_days.ship_id = ships.ship_id 
    AND port_days.port_id = ports.port_id 
    AND port_days.ship_id = '" . $ship_id . "' 
    AND port_days.port_date > '" . $start_date . "' 
    AND port_days.port_date < '" . $end_date . "' 

我正在玩INNER JOIN,但無法啓動它的工作。這實際上是工作,但我認爲必須有更好的方式?

回答

1

使用明確JOIN和表別名:

SELECT s.ship_name, s.company_name, 
     p.port_name, p.port_country, p.port_date as port_days 
FROM port_days pd JOIN 
    ships s 
    ON pd.ship_id = s.ship_id JOIN 
    ports p 
    ON pd.port_id = p.port_id 
WHERE pd.ship_id = '" . $ship_id . "' AND 
     pd.port_date > '" . $start_date . "' AND 
     pd.port_date < '" . $end_date . "'; 
+0

感謝@Gordon,我需要了解更多關於'JOIN' –