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 语句,我可以在表中生成行来显示由pilotid. 但是,我现在想RESULT链接到另一个表并从那里提取数据,例如飞机类型,在一个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

您需要的是一张表JOIN(另请参阅MySQL 手册中的 JOIN):

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 回答