2014-02-18 4 views
0

У меня есть три таблицы с именами мест, мест1, шина. Я хочу присоединиться к местоположениям с шиной на sites.id = bus.id, и я хочу присоединиться к местоположениям1 с местоположениями на location1.id = locations.id ниже, является правильным синтаксисом для этого?MySql Не работает (а)

+0

Вы выполнили запрос? –

+3

Какая ошибка? –

+0

Это может быть, но если дата - дата/время или дата, и у вас нет совпадения с точной датой/временем, может возникнуть проблема. Кроме того, идентификаторы, bus.id на location.id? пока идентификатор представляет то же самое, что и вы, но если bus.id представляет собой шину, а location.id представляет собой местоположение, вы не получите то, что ожидаете. – DRapp

ответ

1

Select резерв только для имен столбцов или * указать все.

locations, locations1 

Это не должно работать (если вы имели в виду таблицы).

Вы должны использовать:

locations.*, location1.* 

Хотя я хотел бы предложить против него и использовать конкретные имена столбцов, нужно в этих таблицах.

Например:

locations.Field1, location.Field2, location1.OtherField1 
0

Я думаю, вам нужно выбрать конкретные поля из таблицы местоположений и местах1.

Как ... просто пример ... выберите дополнительные поля по мере необходимости. Или вы можете использовать * для выбора всех полей из таблицы. Помните, что это будет медленнее, чем если вы укажете поля, как показано ниже.

SELECT bus.id, bus.from_here, 
     bus.to_here, bus.ac, bus.fair, 
     bus.dates, locations.id, locations1.id 
FROM bus 
INNER JOIN locations ON locations.id = bus.id 
INNER JOIN locations1 ON locations1.id = locations.id 
WHERE bus.dates = '".$_SESSION['depart']."' 

А потом опять ... поле dates будет работать только тогда, когда только одна таблица имеет это имя поля. Просто чтобы быть в безопасности ... сделайте это bus.dates.

Смежные вопросы