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: 2018 Forecast 1
| Product Name   | 2018 Forecast   |
|:---------------|:----------------|
| Product 1      |                 |
| Product 2      |                 |
| Product 3      |                 |
| Product 4      |                 |
| Product 5      |                 |
| Product 6      |                 |
| Product 7      |                 |
| Product 8      |                 |
| Product 9      |                 |
| Product 10     |                 |


Table: 2018 Product Forecasts
| 2018 Forecasts   | Product Name   |
|:-----------------|:---------------|
|                  | Product 1      |
|                  | Product 2      |
|                  | Product 3      |
|                  | Product 4      |
|                  | Product 5      |
|                  | Product 6      |
|                  | Product 7      |
|                  | Product 8      |
|                  | Product 9      |
|                  | Product 10     |


Table: Budget Allocation
| Month   |   Month Number |   Monthly Allocation2 |
|:--------|---------------:|----------------------:|
| Jan     |              1 |                  0.04 |
| Feb     |              2 |                  0.07 |
| Mar     |              3 |                  0.07 |
| Apr     |              4 |                  0.1  |
| May     |              5 |                  0.13 |
| Jun     |              6 |                  0.14 |
| Jul     |              7 |                  0.12 |
| Aug     |              8 |                  0.09 |
| Sep     |              9 |                  0.07 |
| Oct     |             10 |                  0.08 |


Table: Budget
| Location ID   | Name           |   Revenue |
|:--------------|:---------------|----------:|
| A189          | Alexandria     |     46400 |
| A165          | Amherst        |     53400 |
| A190          | Arlington      |     45800 |
| A135          | Athens         |     40200 |
| A136          | Atlanta        |     41700 |
| A137          | Augusta        |     62700 |
| A166          | Babylon (Town) |     53000 |
| A147          | Baltimore      |     46600 |
| A142          | Boston         |     29000 |
| A110          | Brandon        |     76500 |


Table: Customer Groups
| Client Groups   | Group Code   |   Index |
|:----------------|:-------------|--------:|
| Top Clients     | Top          |       1 |
| Average Clients | Average      |       2 |
| Lower Clients   | Lower        |       3 |


Table: Customer
| Customer ID   | Customer Name   | Customer Address   | Longitude   | Latitude   |
|:--------------|:----------------|:-------------------|:------------|:-----------|
| C1000         | Jesse Evans     |                    |             |            |
| C1001         | Victor Ramos    |                    |             |            |
| C1002         | Mark Montgomery |                    |             |            |
| C1003         | Dennis Morris   |                    |             |            |
| C1004         | Gregory Simmons |                    |             |            |
| C1005         | Jeremy Vasquez  |                    |             |            |
| C1006         | Anthony Simpson |                    |             |            |
| C1007         | Ernest Rivera   |                    |             |            |
| C1008         | Victor Martinez |                    |             |            |
| C1009         | Bobby Burton    |                    |             |            |


Table: Date Ranges
| Time Frame   |   Days |   Index |
|:-------------|-------:|--------:|
| 7d           |      7 |       1 |
| 14d          |     14 |       2 |
| 30d          |     30 |       3 |
| 90d          |     90 |       4 |
| 180d         |    180 |       5 |
| 360d         |    360 |       6 |


Table: Dates
| Date                    |   Year |   QuarterOfYear |   MonthOfYear |   DayOfMonth |   DateInt | MonthName   | MonthInCalendar   | QuarterInCalendar   |   DayInWeek | DayOfWeekName   | WeekEnding              |   Week Number |   MonthnYear |   QuarternYear |   ShortYear | FY   |
|:------------------------|-------:|----------------:|--------------:|-------------:|----------:|:------------|:------------------|:--------------------|------------:|:----------------|:------------------------|--------------:|-------------:|---------------:|------------:|:-----|
| 2015-07-01 00:00:00.000 |   2015 |               3 |             7 |            1 |  20150701 | July        | Jul 2015          | Q3 2015             |           2 | Wednesday       | 2015-07-05 00:00:00.000 |            27 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-02 00:00:00.000 |   2015 |               3 |             7 |            2 |  20150702 | July        | Jul 2015          | Q3 2015             |           3 | Thursday        | 2015-07-05 00:00:00.000 |            27 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-03 00:00:00.000 |   2015 |               3 |             7 |            3 |  20150703 | July        | Jul 2015          | Q3 2015             |           4 | Friday          | 2015-07-05 00:00:00.000 |            27 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-04 00:00:00.000 |   2015 |               3 |             7 |            4 |  20150704 | July        | Jul 2015          | Q3 2015             |           5 | Saturday        | 2015-07-05 00:00:00.000 |            27 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-05 00:00:00.000 |   2015 |               3 |             7 |            5 |  20150705 | July        | Jul 2015          | Q3 2015             |           6 | Sunday          | 2015-07-05 00:00:00.000 |            27 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-06 00:00:00.000 |   2015 |               3 |             7 |            6 |  20150706 | July        | Jul 2015          | Q3 2015             |           0 | Monday          | 2015-07-12 00:00:00.000 |            28 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-07 00:00:00.000 |   2015 |               3 |             7 |            7 |  20150707 | July        | Jul 2015          | Q3 2015             |           1 | Tuesday         | 2015-07-12 00:00:00.000 |            28 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-08 00:00:00.000 |   2015 |               3 |             7 |            8 |  20150708 | July        | Jul 2015          | Q3 2015             |           2 | Wednesday       | 2015-07-12 00:00:00.000 |            28 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-09 00:00:00.000 |   2015 |               3 |             7 |            9 |  20150709 | July        | Jul 2015          | Q3 2015             |           3 | Thursday        | 2015-07-12 00:00:00.000 |            28 |     20150700 |       20150300 |          15 | FY16 |
| 2015-07-10 00:00:00.000 |   2015 |               3 |             7 |           10 |  20150710 | July        | Jul 2015          | Q3 2015             |           4 | Friday          | 2015-07-12 00:00:00.000 |            28 |     20150700 |       20150300 |          15 | FY16 |


Table: Demand Scenarios
|   Demand Scenarios |
|-------------------:|
|              -0.2  |
|              -0.18 |
|              -0.16 |
|              -0.14 |
|              -0.12 |
|              -0.1  |
|              -0.08 |
|              -0.06 |
|              -0.04 |
|              -0.02 |


Table: Location
| Location ID   | Name            | County           | State Code   | State       | Zip Codes                                                                                                                                                                                    | Type   |   Latitude |   Longitude |   Area Code |   Population |   Households |   Median Income |   Land Area |   Water Area | Time Zone        |
|:--------------|:----------------|:-----------------|:-------------|:------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------|-----------:|------------:|------------:|-------------:|-------------:|----------------:|------------:|-------------:|:-----------------|
| A100          | Bridgeport      | Fairfield County | CT           | Connecticut | 06604 06605 06606 06607 06608 06610 06611 6601 6602 6673 6699                                                                                                                                | City   |    41.167  |    -73.2048 |         203 |       147629 |        50367 |           41801 |    41591056 |      8721419 | America/New York |
| A102          | Hartford        | Hartford County  | CT           | Connecticut | 06103 06105 06106 06110 06112 06114 06117 06120 06160 6102 6104 6115 6123 6126 6132 6134 6140 6141 6142 6143 6144 6145 6146 6147 6150 6151 6153 6154 6155 6156 6160 6161 6167 6176 6180 6183 | City   |    41.7637 |    -72.6851 |         959 |       124006 |        45239 |           30630 |    45016120 |      1748078 | America/New York |
| A104          | New Haven       | New Haven County | CT           | Connecticut | 06510 06511 06512 06513 06515 06519 6501 6502 6503 6504 6505 6506 6507 6508 6509 6520 6521 6530 6531 6532 6533 6534 6535 6536 6537 6538 6540                                                 | City   |    41.3081 |    -72.9282 |         203 |       130322 |        49771 |           37192 |    48407373 |      3739487 | America/New York |
| A106          | Stamford        | Fairfield County | CT           | Connecticut | 06831 06901 06902 06903 06905 06906 06907 6904 6911 6912 6913 6914 6920 6921 6922 6925 6926 6927 6928                                                                                        | City   |    41.0534 |    -73.5387 |         203 |       128874 |        46974 |           79359 |    97430571 |     37323740 | America/New York |
| A108          | Waterbury       | New Haven County | CT           | Connecticut | 06702 06704 06705 06706 06708 06710 06770 6701 6703 6720 6721 6722 6723 6724 6725 6726 6749                                                                                                  | City   |    41.5581 |    -73.0515 |         203 |       108802 |        40213 |           40467 |    73880017 |      1086045 | America/New York |
| A111          | Cape Coral      | Lee County       | FL           | Florida     | 33903 33904 33909 33910 33914 33915 33955 33990 33991 33993                                                                                                                                  | City   |    26.5629 |    -81.9495 |         941 |       175229 |        58967 |           50536 |   273544395 |     35010453 | America/New York |
| A112          | Clearwater      | Pinellas County  | FL           | Florida     | 33755                                                                                                                                                                                        | City   |    27.979  |    -82.7666 |         727 |       113003 |        46234 |           44198 |    67027321 |     36469162 | America/New York |
| A113          | Coral Springs   | Broward County   | FL           | Florida     | 33065 33067 33071 33076                                                                                                                                                                      | City   |    26.2712 |    -80.2706 |         954 |       129485 |        40571 |           66430 |    61625913 |       520928 | America/New York |
| A115          | Fort Lauderdale | Broward County   | FL           | Florida     | 33301 33302 33303 33304 33305 33306 33307 33308 33309 33310 33311 33312 33315 33316 33318 33320 33329 33334 33335 33336 33337 33338 33339 33340 33345 33346 33348 33349 33355 33359          | City   |    26.1223 |    -80.1434 |         954 |       178590 |        73446 |           50778 |    89672308 |      4372775 | America/New York |
| A116          | Gainesville     | Alachua County   | FL           | Florida     | 32601 32602 32603 32604 32605 32606 32607 32608 32609 32610 32611 32612 32613 32614 32627 32635 32641 32653 32667                                                                            | City   |    29.6516 |    -82.3248 |         352 |       130128 |        47968 |           31818 |   161411152 |      3017660 | America/New York |


Table: Pricing Scenarios
|   Pricing Scenarios |
|--------------------:|
|               -0.2  |
|               -0.18 |
|               -0.16 |
|               -0.14 |
|               -0.12 |
|               -0.1  |
|               -0.08 |
|               -0.06 |
|               -0.04 |
|               -0.02 |


Table: Product Pricing Groups
| Pricing Groups   |   Index |   Low Range |   High Range |
|:-----------------|--------:|------------:|-------------:|
| Low              |       1 |           0 |         1000 |
| Mid-Range        |       2 |        1000 |         2000 |
| High             |       3 |        2000 |      1000000 |


Table: Product
| Product ID   | Product Name   |   Cost |   Original Sale Price | Discount Code   |   Discount |   Current Price |   Taxes | Sales Figures   |
|:-------------|:---------------|-------:|----------------------:|:----------------|-----------:|----------------:|--------:|:----------------|
| ENX2000      | Product 1      |   1367 |                  2241 |                 |          0 |            2241 |  336.15 |                 |
| ENX2001      | Product 2      |    504 |                   951 |                 |          0 |             951 |  142.65 |                 |
| ENX2002      | Product 3      |    534 |                   847 |                 |          0 |             847 |  127.05 |                 |
| ENX2003      | Product 4      |   1516 |                  1783 |                 |          0 |            1783 |  267.45 |                 |
| ENX2004      | Product 5      |    665 |                  1278 |                 |          0 |            1278 |  191.7  |                 |
| ENX2005      | Product 6      |    561 |                   684 |                 |          0 |             684 |  102.6  |                 |
| ENX2006      | Product 7      |   1443 |                  1826 |                 |          0 |            1826 |  273.9  |                 |
| ENX2007      | Product 8      |   1054 |                  1405 |                 |          0 |            1405 |  210.75 |                 |
| ENX2008      | Product 9      |    208 |                   315 |                 |          0 |             315 |   47.25 |                 |
| ENX2009      | Product 10     |    420 |                   584 |                 |          0 |             584 |   87.6  |                 |


Table: Sales
| Order ID   | Product ID   | Location ID   | Sales Person ID   | Customer ID   | Purchase Date           |   Quantity |
|:-----------|:-------------|:--------------|:------------------|:--------------|:------------------------|-----------:|
| AX10030    | ENX2028      | A124          | EMP1017           | C1495         | 2017-06-22 00:00:00.000 |          1 |
| AX10091    | ENX2051      | A149          | EMP1017           | C1707         | 2018-04-18 00:00:00.000 |          1 |
| AX10237    | ENX2080      | A169          | EMP1017           | C1578         | 2019-04-10 00:00:00.000 |          1 |
| AX10370    | ENX2011      | A131          | EMP1017           | C1419         | 2016-11-24 00:00:00.000 |          1 |
| AX10395    | ENX2085      | A109          | EMP1017           | C1402         | 2019-06-17 00:00:00.000 |          1 |
| AX10413    | ENX2000      | A137          | EMP1017           | C1345         | 2016-07-06 00:00:00.000 |          1 |
| AX10488    | ENX2028      | A175          | EMP1017           | C1169         | 2017-06-27 00:00:00.000 |          1 |
| AX10534    | ENX2077      | A193          | EMP1017           | C1479         | 2019-03-12 00:00:00.000 |          1 |
| AX10545    | ENX2079      | A128          | EMP1017           | C1695         | 2019-04-08 00:00:00.000 |          1 |
| AX10556    | ENX2097      | A101          | EMP1017           | C1010         | 2019-11-15 00:00:00.000 |          1 |


Table: Salespeople
| Salesperson ID   | Salesperson Name   |
|:-----------------|:-------------------|
| EMP1000          | Fred Robertson     |
| EMP1001          | Kevin Butler       |
| EMP1002          | Andrew Bowman      |
| EMP1003          | Christopher Tucker |
| EMP1004          | Kenneth Bradley    |
| EMP1005          | Ryan Welch         |
| EMP1006          | Sean Miller        |
| EMP1007          | Jeremy Mendoza     |
| EMP1008          | Carl Elliott       |
| EMP1009          | Kenneth Fields     |

 


tables: name: 2018 Forecast 1
data: 2018 Forecast 1.csv
name: 2018 Product Forecasts
data: 2018 Product Forecasts.csv
name: Budget Allocation
data: Budget Allocation.csv
name: Budget
data: Budget.csv
name: Customer Groups
data: Customer Groups.csv
name: Customer
data: Customer.csv
name: Date Ranges
data: Date Ranges.csv
name: Dates
data: Dates.csv
name: Demand Scenarios
data: Demand Scenarios.csv
name: Location
data: Location.csv
name: Pricing Scenarios
data: Pricing Scenarios.csv
name: Product Pricing Groups
data: Product Pricing Groups.csv
name: Product
data: Product.csv
name: Sales
data: Sales.csv
name: Salespeople
data: Salespeople.csv
label: Sales
Sales Person ID
Salespeople
Salesperson ID
Sales
Product ID
Product
Product ID
Sales
Customer ID
Customer
Customer ID
Sales
Location ID
Location
Location ID
Sales
Purchase Date
Dates
Date
output: {
    "joins": [
        {
            "from_table": "Sales",
            "from_column": "Sales Person ID",
            "to_table": "Salespeople",
            "to_column": "Salesperson ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Product ID",
            "to_table": "Product",
            "to_column": "Product ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Customer ID",
            "to_table": "Customer",
            "to_column": "Customer ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Location ID",
            "to_table": "Location",
            "to_column": "Location ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Purchase Date",
            "to_table": "Dates",
            "to_column": "Date"
        }
    ]
}