2013-07-21 100 views
0

打算打印出一張表,第一列的seatnumber,因爲它是第二列用戶的用戶名。SQL選擇跨3個表的查詢

全影像圖的位置:http://iforce.co.nz/i/m0rvairk.hb4.png

了隊友一展身手,走到這一步:

SELECT q802d_vikevents_orderseats.seatnum, q802d_users.username 
     FROM q802d_vikevents_orderseats, q802d_vikevents_users 
INNER JOIN q80d_users ON q802d_vikevent_users.ujid=q802d_users.ujid 
INNER JOIN 
+0

什麼是最後的表名? – UrGuardian4ngel

回答

0

@ UrGuardian4ngel響應看起來是正確的(一旦第三張表的名稱被確認)。寫這個的另一種方法如下:

select s.seatnum, 
     t.username 
    from q802d_vikevents_orderseats s, 
     q802d_vikevent_users vu, 
     mystery_third_table t 
where vu.id = s.uid 
    and t.id = vu.ujid; 
+0

第三張表是'q802d_users'。但它似乎沒有工作,請參閱http://aucklan.com/index.php/event錯誤消息。謝謝你的幫助! – user2603915

+0

錯誤表示其中一個表(q802d_vikevent_users)不存在。你使用的是什麼RDBMS?您是否能夠提供架構在http://www.sqlfiddle.com/ – ChrisProsser

+0

謝謝澄清!我只是意識到第四行代碼不是很正確,'q802d_vikevent_users' - >'q802d_vikevents_users'。 – user2603915

1

不知道這表名。你的屏幕截圖在最後並不清楚(缺少表名)。但可能會按原樣工作。

SELECT 
    s.seatnum, 
    u.username 
FROM q802d_vikevents_orderseats s 
INNER JOIN q802d_vikevent_users vu 
     ON vu.id = s.uid 
INNER JOIN q802d_users u 
     ON u.id = ujid;