mysql - 使用mySQL计算3个表之间的元素数量

标签 mysql sql

我有这 3 个表:

___卡迪斯

|--------|---------|-------------|
| KDX_Id | KDX_VIP | KDX_Regular |
|--------|---------|-------------|
| 1      |      No |          No |
| 2      |      No |          No |
|--------|---------|-------------|

___BillableDatas

|--------|---------------|
| BIL_Id | BIL_BookingId |
|--------|---------------|
| 1      |            99 |
| 2      |            99 | 
| 3      |           100 | 
|--------|---------------|

___预订

|--------|--------------|
| BOO_Id | BOO_ClientId |
|--------|--------------|
|     99 |            1 |
|    100 |            2 | 
|--------|--------------|

我想循环到 ___Kardex 并为每个客户端进行计数:
- 客户预订的预订数量(包含在 ___Bookings 中)。
- 客户度过的夜晚数(包含在 ___BillableDatas 中)。

所以我尝试了:

SELECT 
    KDX_Id, 
    (
        SELECT COUNT(BOO_Id) 
        FROM ___Bookings
        WHERE ___Kardex.KDX_Id = ___Bookings.BOO_ClientId
    ) AS nb_bookings,
    (
        SELECT COUNT(BIL_Id) 
        FROM ___BillableDatas
        WHERE ___Kardex.KDX_Id = ___Bookings.BOO_ClientId
        AND ___Bookings.BOO_Id = ___BillableDatas.BIL_BookingId
    ) AS nb_bookings 
FROM  ___Kardex

但我得到空数据。

你能帮忙吗?

这里是 SQLFiddle:http://sqlfiddle.com/#!9/cf1832

预期结果是:

|--------|-------------|-----------|
| KDX_Id | nb_bookings | nb_nights |
|--------|-------------|-----------|
| 1      |           1 |         2 |
| 2      |           1 |         1 |
|--------|-------------|-----------|

谢谢。

最佳答案

给你:

SELECT 
    KDX_Id, 
    (
        SELECT COUNT(BOO_Id) 
        FROM ___Bookings
        WHERE KDX_Id = ___Bookings.BOO_ClientId
    ) AS nb_bookings,
    (
        SELECT COUNT(BIL_Id) 
        FROM ___Bookings, ___BillableDatas
        WHERE ___Bookings.BOO_Id = ___BillableDatas.BIL_BookingId
        AND KDX_Id = ___Bookings.BOO_ClientId
    ) AS nb_nights 
FROM  ___Kardex

关于mysql - 使用mySQL计算3个表之间的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49335438/

相关文章:

c# - 将架构从 SQL Server 数据库传输到 SQL Server CE 数据库的简单方法?

mysql - 如何将MySql查询结果存储在MyBatis中的变量中

php - 无法将 JSON 数据正确加载到 Spinner 中

html - SQLSTATE[23000] : Integrity constraint violation: 1062 Duplicate entry 'cataloginventory_stock' for key 'UNQ_INDEX_PROCESS_INDEXER_CODE' , 问

sql - 是否可以在 Hive 的 Spark SQL 中更改列名?

mysql - SQL select true if 日期比较

php - 需要有关此 SQL 查询的帮助

php - undefined variable

php - 试图让 MySQL 结果水平显示

java - 如何使 jdbc mysql 数据库连接生效