2016-04-06 17 views
0

私はかなり新しいSQLですし、私のSQLクエリの1つを簡略化する方法があるのだろうかと思っていました。私の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やテーブル別名:@Gordonが、私は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

感謝 –