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