2013-07-21 102 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;