2012-04-17 79 views
0

排序我最近增加了一個排序字段,現在我想要的結果進行排序。我可以用PHP或直接在數據庫上完成。所以我嘗試第二個:包括查詢

SELECT * 
FROM constructions 
AS whole 
INNER JOIN 
(
    SELECT DISTINCT construction 
    FROM data 
    AS results 
    WHERE product =2 
    AND application =1 
    AND requirement =1 
) 
ON whole.id = results 
ORDER BY whole.sorting 

我試圖使用內部聯接來匹配完整的表和結果集。但我無法得到它的工作(#1248 - Every derived table must have its own alias)。我試圖使用別名,但仍有一些錯誤。也許我不應該使用內部連接,而應該使用IN()

回答

3

2個明顯錯誤的語法:

SELECT * 
FROM constructions 
AS whole 
INNER JOIN 
(
    SELECT DISTINCT construction AS results 
    FROM data 
    WHERE product =2 
    AND application =1 
    AND requirement =1 
) AS a 
ON whole.id = a.results 
ORDER BY whole.sorting 
1

試圖得到這樣的數據...

SELECT * 
    FROM constructions 
    where 
    construction 
    in 
    (
     SELECT DISTINCT construction 
     FROM data 
     AS results 
     WHERE product =2 
     AND application =1 
     AND requirement =1 
    ) 
+0

你忘了'ORDER BY sorting'和現場'construction'被命名爲'身份證「在我的情況(但你不知道)。否則,它工作正常。 – testing 2012-04-17 09:41:54