2012-04-17 84 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