0

最近、並べ替えフィールドを追加しましたが、結果を並べ替えたいと思います。PHPで、またはデータベースで直接実行できます。だから私は2番目のものを試しました:

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()代わりに使用するべきではありません。

4

2 に答える 2

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
于 2012-04-17T09:27:19.667 に答える
1

このようなデータを取得してみてください...

 SELECT *
    FROM constructions
    where 
    construction
    in
    (
        SELECT DISTINCT construction
        FROM data
        AS results
        WHERE product =2
        AND application =1
        AND requirement =1
    )
于 2012-04-17T09:27:28.757 に答える