私はこのようなスキーマを持っています
CREATE TABLE TrainManager(
train_name VARCHAR(5) REFERENCES Train(name),
station_id INT REFERENCES Station(station_id)
);
2つの参照テーブルには間接的な関係があります。
コントロール(ctrl_id、train_name);
controlremote(ctrl_id、station_id);
できる限り、train name
とを取得するには、train_nameとstation_idstation id
を比較する以外に、他の2つのテーブルを調べて比較する必要があります。ctrl_id
$query = "INSERT INTO `train` (train_name, station_id)
SELECT t.train_name, st.station_id
FROM train, station
WHERE t.train_name = ( SELECT c.train_name FROM control c
WHERE c.train_name = t.train_name)
AND
st.station_id = ( SELECT cr.station_id FROM controlremote cr
WHERE cr.station_id = st.station_id)
AND
しかし、ctrl_idを比較するための適切なSQLsynatxを考えることはできません...