我对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
,但无法让它发挥作用。这实际上是有效的,但我认为必须有更好的方法吗?
答案 0 :(得分: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 . "';