3 таблицы объединяют одно поле из одной таблицы и одно поле из другой - PullRequest
0 голосов
/ 31 января 2011

У меня есть этот запрос

SELECT cities.city, city_time.time_slot 
FROM cities, city_date, city_time 
WHERE city_time.city_date_id = city_date.city_id = city_date.city_id =  cities.id 
AND city_time.city_date_id = '1'

Я пытаюсь вывести сорта city.city и city_time.time_slot в одну строку, они связаны через city_date,

cities has- 
===========
id
city, 

city_date  has
===========
id
city_id (fk for city_table)

city_time has
==============
city_date_id (FK for city_date table)
time_slot

пробовал несколько способов ...

SELECT cities.city, city_time.time_slot 
FROM (city_date LEFT JOIN cities ON city_time.city_date_id = city_date.city_id ) 
LEFT JOIN city_date ON city_time.city_date_id = city_date.city_id 
WHERE  city_time.city_date_id = '1'

Я просто хочу, чтобы поле города из таблицы городов было связано с полем time_slot в таблице city_time. Мне даже не нужно левое соединение, но я подумал, что включу его, чтобы помочь вам понять мои мысли.

Ответы [ 3 ]

1 голос
/ 31 января 2011
select c.city, ct.time_slot
    from cities c
        inner join city_date cd
            on c.id = cd.city_id
        inner join city_time ct
            on cd.id = ct.city_date_id
    where ct.city_date_id = 1
0 голосов
/ 01 февраля 2011

в этих двух таблицах должно быть что-то общее, чтобы вы могли сравнить это и получить то, что хотели напечатать .. например, добавить что-то вроде идентификатора города и идентификатора времени города с одинаковой записью.

0 голосов
/ 31 января 2011

Из других ваших вопросов это выглядит как то, что вы ищете.
Пожалуйста, начните использовать более короткие имена (надеюсь, все еще значащие) для псевдонимов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...