Sql 在1个查询中查询3个表-错过最后一个

Sql 在1个查询中查询3个表-错过最后一个,sql,pdo,Sql,Pdo,我希望得到以下结果: | # | Country | Percent | Nb bookings | | 1 | France | 20% | 10 bookings | | 2 | Canada | 80% | 8 bookings | 我的实际数据库如下所示: 表1: KDX_Id (exemple 9) ... KDX_PostalAddress_Country (example: FR) 表2:预订量 BOO_Id BOO_ClientId

我希望得到以下结果:

| # | Country | Percent | Nb bookings |
| 1 | France  | 20%     | 10 bookings |
| 2 | Canada  | 80%     | 8  bookings |
我的实际数据库如下所示:

表1:

  KDX_Id (exemple 9)
  ...
  KDX_PostalAddress_Country (example: FR)
表2:预订量

  BOO_Id
  BOO_ClientId (link with table 1, = 9)
表3:CountryList

  CTY_Code (link with table 1, = FR)
  CTY_en (should show France)
我在PDO中的SQL查询如下:

SELECT KDX_PostalAddress_Country,
       COUNT(KDX_Id) * 100 /
  (SELECT COUNT(KDX_Id)
   FROM ___Kardex) AS KDX_CountryPercentage,
       COUNT(KDX_Id) AS KDX_CountryCount
FROM ___Kardex
WHERE KDX_HotelId=:hotel_id
GROUP BY KDX_PostalAddress_Country
ORDER BY KDX_CountryPercentage DESC
但我无法得到国家名称(CTY_en),只能得到代码(KDX_PostalAddress_country)

我尝试插入一个内部联接,但没有成功

INNER JOIN ___CountryList
ON ___Kardex.KDX_PostalAddress_Country=___CountryList.CTY_Code
你能帮我解决这个问题吗

非常感谢。

你试过这个吗

SELECT CTY_en,
       COUNT(KDX_Id) * 100 /
  (SELECT COUNT(KDX_Id)
   FROM ___Kardex) AS KDX_CountryPercentage,
       COUNT(KDX_Id) AS KDX_CountryCount
FROM ___Kardex
INNER JOIN ___CountryList
ON ___Kardex.KDX_PostalAddress_Country=___CountryList.CTY_Code
WHERE KDX_HotelId=:hotel_id
GROUP BY KDX_PostalAddress_Country
ORDER BY KDX_CountryPercentage DESC