2

私はこのクエリを持っています:

$aircraft_query = "SELECT COUNT(aircraft) as total, aircraft FROM db_pireps WHERE pilotid = $pilotid GROUP BY aircraft ORDER BY total DESC LIMIT 6";
$planes = DB::get_results($aircraft_query);

また、foreachステートメントを使用して、テーブルに行を生成し、によって飛行した航空機を表示できますpilotidRESULTただし、ここで、別のテーブルにリンクして、そこから航空機の種類などのデータを列に抽出したいと思いfullnameます。

私はこれを持っています:<?php echo $aircraft->fullname; ?>しかし、そのデータは別のテーブルにあります。したがって、aircraftが30の場合、db_aircraftsテーブルの30番目のレコードにアクセスし、fullname列を取得します。これどうやってするの?それも可能ですか?

4

2 に答える 2

1

SQL結合を使用する必要があります。

SELECT COUNT(A.aircraft) as total, A.aircraft, B.fullname
 FROM db_pireps A
 LEFT JOIN pilot_data_table B ON A.pilotid = B.id
 WHERE A.pilotid = $pilotid
 GROUP BY A.aircraft ORDER BY total DESC LIMIT 6
于 2013-02-24T23:17:05.517 に答える
1

必要なものはテーブルと呼ばれます( MySQLマニュアルのJOINJOINも参照してください)。

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
于 2013-02-24T23:17:28.383 に答える