Я пытаюсь получить некоторые данные из нескольких таблиц, используя запрос соединения. У меня есть таблица резервирования, где я храню "идентификатор местоположения пикапа" и "Идентификатор местоположения места" и другую таблицу "местоположение", где хранятся имена местоположений. Я пытаюсь получить имя местоположения (место захвата и падения) в 2 разных переменных из таблицы "местоположение" с этими двумя идентификаторами из таблицы резервирования.
У меня есть таблицы со следующими параметрами. Таблица местоположений: "locations_deatils" имеет location_name location_id. Таблица резервирования: reservation_cars имеет идентификатор pickup_location, идентификатор drop_location, дату pick_up, drop_date
SELECT l.location_name as pick-up_loc,
l.location_name as drop_loc,
c.pickup_date,
c.return_date,
FROM locations_deatils l inner join
reservation_cars c on l.locations_id = c.pickup_location and l.locations_id
= c.return_location
WHERE c.pickup_date >= :pickupTime and c.return_date <=:returnTime;
Вам нужно сделать отдельное соединение для пикапа и для места падения.
SELECT l1.location_name as 'pick-up location', l2.location_name as 'drop location', pickup_date, return_date
FROM reservation_cars r
JOIN locations_deatils l1 ON l1.locations_id = r.pickup_location
JOIN locations_deatils l2 ON l2.locations_id = r.return_location
WHERE r.pickup_date >= :pickupTime
AND r.drop_date <= :returnTime
Возможно, вы имели в виду нечто подобное:
SELECT p_loc.location_name AS pickup_location,
cars.pickup_date,
d_loc.location_name AS drop_location,
cars.return_date
FROM reservation_cars cars
JOIN location_details p_loc
ON cars.pickup_location = p_loc.location_id
JOIN location_details d_loc
ON cars.return_location = d_loc.location_id
WHERE .....
Возможно, вам придется использовать outer join
в случае, если настройки пикапа и/или возврата не установлены (пока).
SHOW CREATE TABLE [table]
Также предоставьте пример данных в виде таблицы данных ascii. Или предоставьте sqlfiddle.com или db-fiddle.com со структурами таблиц и примерами данных. Также предоставьте ожидаемый вывод в виде таблицы данных ascii. Трудно создать запрос SQL из обратного инжиниринга другого запроса SQL и некоторого текста без примеров данных.