0

私は車の記録を持つテーブルを持っています。そのテーブルにクエリを実行して、すべての(見つかった)レコードが取得され、地区名とその地区にある車の数を含むテーブルが結果の横に表示されるようにします。

通常の craigslist の結果ページまたは同様のサイトのように、結果が表示されます。左側には、結果がどこ (どの地区など) にあるか、各地区の数などを示す表があります。

現時点では 2 つのクエリでそれを実現していますが、1 つのクエリだけではできないのではないかと尋ねました。

私のテーブルは次のように単純化されています。

    name | color | year | district
    ------------------------------
    ford | blue  | 1998 | 1010
    opel | red   | 2001 | 1030
    vw   | green | 1999 | 1010
    ...  | ...   | ...  | ...

したがって、結果は次のようになります。

districts       results
---------       ----------
1010 (2)        ford, 1998
1030 (1)        opel, 2001
....            vw, 1999
                ...

私が何を意味するか知っていることを願っています。

4

3 に答える 3

2

1 つのクエリから 2 つのビューを生成することはできません。すべてのレコードを表示する場合、それは 1 つのクエリです。地区ごとにグループ化されたレコードを表示する場合は、別のクエリです。

于 2013-03-28T13:22:23.613 に答える
1

1 つのクエリから 2 つの結果セットを生成することはできません。

車の総数で地区名を取得するには、次のようにします。

SELECT d.name, COUNT(c.id) as total
FROM districts AS d
LEFT JOIN cars AS c ON c.district = d.id
GROUP BY d.id;
于 2013-03-28T13:24:41.273 に答える
0

これには GROUP BY を使用する必要があると思います。

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

SELECT c.name, 
       c.color, 
       c.year, 
       c.district, 
       COUNT(c.id) counted,
FROM   cars c
GROUP BY district, name
于 2013-03-28T13:22:27.677 に答える