Task: equi-join-detect (source dataset: Auto-BI)

Your are given a database with related tables used for business intelligence analysis. Your task is to identify all key/foreign-key join relationships between the tables for this database. Recall that a join is a relationship between two tables, that allows rows from one table to be combined with rows from another, based on a set of common join columns.
 
 
No explanation needed. Please return all join relationships in the following JSON format:
{
  "joins": [
    {
      "from_table": "table-1",
      "from_column": "column-1",
      "to_table": "table-2",
      "to_column": "column-3"
    }, 
	...
  ]
}

Tables:

Table: tennispowerbi agecountrygenderranking
| Players          |   Age | NameCountry              | Gender   |   CurrentRanking | Age Range    | Rankings          |
|:-----------------|------:|:-------------------------|:---------|-----------------:|:-------------|:------------------|
| Alexander Zverev |    24 | Germany                  | Male     |                3 | Age 22 to 28 | Top 10            |
| Andrey Rublev    |    24 | Russia                   | Male     |                5 | Age 22 to 28 | Top 10            |
| Hubert Hurkacz   |    24 | Poland                   | Male     |                9 | Age 22 to 28 | Top 10            |
| Taylor Fritz     |    24 | United States of America | Male     |               23 | Age 22 to 28 | Ranking 21 to 50  |
| Reilly Opelka    |    24 | United States of America | Male     |               26 | Age 22 to 28 | Ranking 21 to 50  |
| Lloyd Harris     |    24 | South Africa             | Male     |               31 | Age 22 to 28 | Ranking 21 to 50  |
| Alexander Bublik |    24 | Kazakhstan               | Male     |               36 | Age 22 to 28 | Ranking 21 to 50  |
| Tommy Paul       |    24 | United States of America | Male     |               43 | Age 22 to 28 | Ranking 21 to 50  |
| Soon Kwon        |    24 | Korea, South             | Male     |               53 | Age 22 to 28 | Ranking 51 to 100 |
| Pedro Martinez   |    24 | Spain                    | Male     |               60 | Age 22 to 28 | Ranking 51 to 100 |


Table: tennispowerbi tblcategory
|   IdCategory | NameCategory        |   IdOrganization |
|-------------:|:--------------------|-----------------:|
|            1 | Grand Slam          |                3 |
|            2 | ATP Masters 1000    |                1 |
|            3 | ATP 500             |                1 |
|            4 | ATP 250             |                1 |
|            5 | ATP Challenger Tour |                1 |
|            6 | ATP Finals          |                1 |
|            7 | WTA 1000            |                2 |
|            8 | WTA 500             |                2 |
|            9 | WTA 250             |                2 |
|           10 | WTA 125             |                2 |


Table: tennispowerbi tblcountries
|   IdCountry | NameCountry         |   IdRegion |
|------------:|:--------------------|-----------:|
|           1 | Afghanistan         |          5 |
|           2 | Albania             |          1 |
|           3 | Algeria             |          4 |
|           4 | Andorra             |          1 |
|           5 | Angola              |          4 |
|           6 | Antigua and Barbuda |          3 |
|           7 | Argentina           |          3 |
|           8 | Armenia             |          1 |
|           9 | Australia           |          7 |
|          10 | Austria             |          1 |


Table: tennispowerbi tblgender
|   IdGender | Gender   |
|-----------:|:---------|
|          1 | Male     |
|          2 | Female   |
|          3 | Mixed    |


Table: tennispowerbi tblorganization
|   IdOrganization | NameOrganization                    |   IdGender |
|-----------------:|:------------------------------------|-----------:|
|                1 | Association of Tennis Professionals |          1 |
|                2 | Women's Tennis Asociation           |          2 |
|                3 | International Tennis Federation     |          3 |


Table: tennispowerbi tblpreviousnumeroneatp
| DateRanking             |   IdPlayer |
|:------------------------|-----------:|
| 2020-01-06 00:00:00.000 |          1 |
| 2020-01-13 00:00:00.000 |          1 |
| 2020-01-20 00:00:00.000 |          1 |
| 2020-01-27 00:00:00.000 |          1 |
| 2020-02-03 00:00:00.000 |          1 |
| 2020-02-10 00:00:00.000 |          1 |
| 2020-02-17 00:00:00.000 |          1 |
| 2020-02-24 00:00:00.000 |          1 |
| 2020-03-02 00:00:00.000 |          1 |
| 2020-03-09 00:00:00.000 |          1 |


Table: tennispowerbi tblpreviousnumeronewta
| DateRanking             |   IdPlayer |
|:------------------------|-----------:|
| 2020-01-06 00:00:00.000 |        501 |
| 2020-01-13 00:00:00.000 |        501 |
| 2020-01-20 00:00:00.000 |        501 |
| 2020-01-27 00:00:00.000 |        501 |
| 2020-02-03 00:00:00.000 |        501 |
| 2020-02-10 00:00:00.000 |        501 |
| 2020-02-17 00:00:00.000 |        501 |
| 2020-02-24 00:00:00.000 |        501 |
| 2020-03-02 00:00:00.000 |        501 |
| 2020-03-09 00:00:00.000 |        501 |


Table: tennispowerbi tblregion
|   IdRegion | RegionName                |
|-----------:|:--------------------------|
|          1 | Europe                    |
|          2 | North America             |
|          3 | Latin America & Caribbean |
|          4 | Africa                    |
|          5 | Middle East               |
|          6 | Asia                      |
|          7 | Oceania                   |


Table: tennispowerbi tblsurfaces
|   IdSurface | Surface       |
|------------:|:--------------|
|           1 | Red Clay      |
|           2 | Hard          |
|           3 | Indoor Hard   |
|           4 | Grass         |
|           5 | Green Clay    |
|           6 | Indoor Carpet |


Table: tennispowerbi tbltennisplayers
|   IdPlayer | FirstName   | LastName   | BirthDate               |   IdOrganization |   IdCountry |   ActualRanking |
|-----------:|:------------|:-----------|:------------------------|-----------------:|------------:|----------------:|
|        512 | Sofia       | Kenin      | 1998-11-14 00:00:00.000 |                2 |         187 |              12 |
|        518 | Jessica     | Pegula     | 1994-02-24 00:00:00.000 |                2 |         187 |              18 |
|        522 | Cori        | Gauff      | 2004-03-13 00:00:00.000 |                2 |         187 |              22 |
|        525 | Jennifer    | Brady      | 1995-04-12 00:00:00.000 |                2 |         187 |              25 |
|        529 | Danielle    | Collins    | 1993-12-13 00:00:00.000 |                2 |         187 |              29 |
|        540 | Shelby      | Rogers     | 1992-10-13 00:00:00.000 |                2 |         187 |              40 |
|        541 | Serena      | Williams   | 1981-09-26 00:00:00.000 |                2 |         187 |              41 |
|        547 | Ann         | Li         | 2000-06-26 00:00:00.000 |                2 |         187 |              47 |
|        551 | Alison      | Riske      | 1990-07-03 00:00:00.000 |                2 |         187 |              51 |
|        556 | Madison     | Keys       | 1995-02-17 00:00:00.000 |                2 |         187 |              56 |


Table: tennispowerbi tbltournaments
|   IdTournament | NameTournament   | StartDate               |   IdCategory |   IdSurface |   IdCountry |
|---------------:|:-----------------|:------------------------|-------------:|------------:|------------:|
|            285 | M15 ANTALYA      | 2021-01-04 00:00:00.000 |           12 |           1 |         180 |
|            289 | M15 ANTALYA      | 2021-01-11 00:00:00.000 |           12 |           1 |         180 |
|            293 | M15 ANTALYA      | 2021-01-18 00:00:00.000 |           12 |           1 |         180 |
|            296 | M15 ANTALYA      | 2021-01-25 00:00:00.000 |           12 |           1 |         180 |
|            302 | M15 ANTALYA      | 2021-02-01 00:00:00.000 |           12 |           1 |         180 |
|            303 | M15 ANTALYA      | 2021-02-08 00:00:00.000 |           12 |           1 |         180 |
|            310 | M15 ANTALYA      | 2021-02-15 00:00:00.000 |           12 |           1 |         180 |
|            317 | M15 ANTALYA      | 2021-02-22 00:00:00.000 |           12 |           1 |         180 |
|            322 | M15 ANTALYA      | 2021-03-01 00:00:00.000 |           12 |           1 |         180 |
|            333 | M15 ANTALYA      | 2021-03-08 00:00:00.000 |           12 |           1 |         180 |


Table: tennispowerbi tournamentsbyplacesurface
| StartDate               | NameTournament   | NameCategory   | NameCountry   | Regions   | Surface   |
|:------------------------|:-----------------|:---------------|:--------------|:----------|:----------|
| 2021-01-04 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-01-11 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-01-18 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-01-25 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-02-01 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-02-08 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-02-15 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-02-22 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-03-01 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |
| 2021-03-08 00:00:00.000 | M15 ANTALYA      | ITF Tour       | Turkey        | Europe    | Clay      |

 


tables: name: tennispowerbi agecountrygenderranking
data: tennispowerbi agecountrygenderranking.csv
name: tennispowerbi tblcategory
data: tennispowerbi tblcategory.csv
name: tennispowerbi tblcountries
data: tennispowerbi tblcountries.csv
name: tennispowerbi tblgender
data: tennispowerbi tblgender.csv
name: tennispowerbi tblorganization
data: tennispowerbi tblorganization.csv
name: tennispowerbi tblpreviousnumeroneatp
data: tennispowerbi tblpreviousnumeroneatp.csv
name: tennispowerbi tblpreviousnumeronewta
data: tennispowerbi tblpreviousnumeronewta.csv
name: tennispowerbi tblregion
data: tennispowerbi tblregion.csv
name: tennispowerbi tblsurfaces
data: tennispowerbi tblsurfaces.csv
name: tennispowerbi tbltennisplayers
data: tennispowerbi tbltennisplayers.csv
name: tennispowerbi tbltournaments
data: tennispowerbi tbltournaments.csv
name: tennispowerbi tournamentsbyplacesurface
data: tennispowerbi tournamentsbyplacesurface.csv
label: tennispowerbi tblcategory
IdOrganization
tennispowerbi tblorganization
IdOrganization
tennispowerbi tbltournaments
IdCategory
tennispowerbi tblcategory
IdCategory
tennispowerbi tblorganization
IdGender
tennispowerbi tblgender
IdGender
tennispowerbi tbltournaments
IdSurface
tennispowerbi tblsurfaces
IdSurface
tennispowerbi tbltennisplayers
IdOrganization
tennispowerbi tblorganization
IdOrganization
tennispowerbi tblcountries
IdRegion
tennispowerbi tblregion
IdRegion
output: {
    "joins": [
        {
            "from_table": "tennispowerbi tblcategory",
            "from_column": "IdOrganization",
            "to_table": "tennispowerbi tblorganization",
            "to_column": "IdOrganization"
        },
        {
            "from_table": "tennispowerbi tbltournaments",
            "from_column": "IdCategory",
            "to_table": "tennispowerbi tblcategory",
            "to_column": "IdCategory"
        },
        {
            "from_table": "tennispowerbi tblorganization",
            "from_column": "IdGender",
            "to_table": "tennispowerbi tblgender",
            "to_column": "IdGender"
        },
        {
            "from_table": "tennispowerbi tbltournaments",
            "from_column": "IdSurface",
            "to_table": "tennispowerbi tblsurfaces",
            "to_column": "IdSurface"
        },
        {
            "from_table": "tennispowerbi tbltennisplayers",
            "from_column": "IdOrganization",
            "to_table": "tennispowerbi tblorganization",
            "to_column": "IdOrganization"
        },
        {
            "from_table": "tennispowerbi tblcountries",
            "from_column": "IdRegion",
            "to_table": "tennispowerbi tblregion",
            "to_column": "IdRegion"
        }
    ]
}