2011-01-31 72 views
0

我有這個疑問3表連接從一個表中的一個字段,並從另一個

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' 

我試圖讓cities.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 

一直在嘗試幾個ways-

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' 

我只是想從城市表的城市字段鏈接到city_time表中的time_slot字段。甚至不需要左連接,但我想我會包括它來幫助你理解我的想法。

+0

你可以在「代碼」塊中格式化你的SQL代碼嗎?這會使閱讀更容易。 – 2011-01-31 19:16:35

回答

0

從你的其他問題來看,這看起來就是你以後的樣子。
請使用更短的名稱(希望仍然有意義)作爲別名。

SELECT c.city, t.time_slot 
FROM cities c 
LEFT JOIN city_date d on d.city_id = c.id 
LEFT JOIN city_time t on t.city_date_id = d.city_id AND t.city_date_id = '1' 
1
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

加1用於擺脫那種可怕的隱式連接語法! – HLGEM 2011-01-31 19:25:30

0

應該有兩個表共同的東西,這樣就可以進行比較,並有你想打印什麼..像添加類似城市標識和城市的時間ID具有相同的記錄。

相關問題