2015-06-10 41 views
0

一直期待構建一個mySQL查詢,以從多個不同的表中選擇某些事物。不過,我在運行SQL時遇到了一個錯誤。不知道我缺少mySQL Multiple Joints

的SQL:

SELECT * 
FROM tripreport as tr 
JOIN 
(
    SELECT * FROM tripreportentries as tre LIMIT 1 
) ON tr.tripreportid = tre.reportid 
JOIN users as u ON tr.userid = u.id 
JOIN user_details as ud ON u.id = ud.userid 

錯誤:

Every derived table must have its own alias 

難道我失去了一些東西非常明顯的,因爲到目前爲止,這意味着每個表引用必須有自己的別名定義爲我的查詢的一部分。對我來說,它看起來像所有的表都有這個,但它仍然沒有運行?

我誤解了這個或以上的東西嗎?

回答

3

你錯過了別名:

.... 
JOIN 
(
    SELECT * FROM tripreportentries LIMIT 1 
) AS tre ON 
... 
+0

謝謝,我自己的muppetry。 – Legend1989

1

使用別名出來的()。由於您在內部查詢中只有一個表,您可以使用別名tre本身:

SELECT * 
FROM tripreport as tr 
JOIN 
(
    SELECT * FROM tripreportentries LIMIT 1 
) as tre ON tr.tripreportid = tre.reportid 
JOIN users as u ON tr.userid = u.id 
JOIN user_details as ud ON u.id = ud.userid