0
SELECT COUNT(a.aircraft) as total
    , a.aircraft
    , b.fullname AS aircraft_name 
FROM db_pireps AS a 
JOIN db_aircraft AS b ON a.aircraft = b.id 
WHERE pilotid = {$pilotid}
GROUP BY aircraft 
ORDER BY total DESC 
LIMIT 6

このクエリがありますが、追加しようとしてb.registration AS regいますが、そのクエリ内に別の SELECT を配置する方法がわからないため、失敗しているようです。

4

4 に答える 4

1

カンマを使用します。

SELECT
  COUNT(a.aircraft) as total,
  a.aircraft,
  b.fullname AS aircraft_name,
  b.registration AS reg
FROM db_pireps AS a JOIN db_aircraft AS b 
  ON a.aircraft = b.id WHERE pilotid = {$pilotid}
GROUP BY aircraft ORDER BY total DESC LIMIT 6
于 2013-02-26T17:23:00.827 に答える
1
SELECT COUNT(a.aircraft) as total, a.aircraft, b.fullname AS aircraft_name, b.registration AS reg
FROM db_pireps AS a JOIN db_aircraft AS b ON a.aircraft = b.id 
WHERE a.pilotid = {$pilotid}
GROUP BY a.aircraft 
ORDER BY total DESC LIMIT 6

ヒント:列の命名に関する問題を回避するために、テーブル名にエイリアスを使用する場合は、クエリで使用しているすべての列でエイリアスを使用してください。

于 2013-02-26T17:23:44.957 に答える
1

私はあなたの質問をよく理解していませんが、これはうまくいくと思います:

$aircraft_query = "SELECT COUNT(a.aircraft) as total, a.aircraft, b.fullname AS aircraft_name, b.registration AS reg 
                  FROM db_pireps AS a JOIN db_aircraft AS b ON a.aircraft = b.id 
                  WHERE pilotid = {$pilotid}
                  GROUP BY aircraft 
                  ORDER BY total DESC LIMIT 6";
于 2013-02-26T17:24:06.797 に答える
0

列 b.registration を追加し、エイリアスを reg にするだけです。下記参照。それはあなたが数えたのと同じです

SELECT COUNT(a.aircraft) as total, a.aircraft, b.fullname AS aircraft_name, b.registration   AS reg
FROM db_pireps AS a JOIN db_aircraft AS b ON a.aircraft = b.id 
WHERE pilotid = {$pilotid}
GROUP BY a.aircraft 
 ORDER BY total DESC LIMIT 6
于 2013-02-26T17:26:12.160 に答える