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: Customers
| 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: Dates
| Date                    |   Year |   QuarterOfYear |   MonthOfYear |   DayOfMonth |   DateInt | MonthName   | Month & Year   | Quarter & Year   |   DayInWeek | Day of Week   | WeekEnding              |   Week Number |   MonthnYear |   QuarternYear |   ShortYear | FY   |
|:------------------------|-------:|----------------:|--------------:|-------------:|----------:|:------------|:---------------|:-----------------|------------:|:--------------|:------------------------|--------------:|-------------:|---------------:|------------:|:-----|
| 2016-07-01 00:00:00.000 |   2016 |               3 |             7 |            1 |  20160701 | July        | Jul 2016       | Q3 2016          |           5 | Friday        | 2016-07-02 00:00:00.000 |            27 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-02 00:00:00.000 |   2016 |               3 |             7 |            2 |  20160702 | July        | Jul 2016       | Q3 2016          |           6 | Saturday      | 2016-07-02 00:00:00.000 |            27 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-03 00:00:00.000 |   2016 |               3 |             7 |            3 |  20160703 | July        | Jul 2016       | Q3 2016          |           0 | Sunday        | 2016-07-09 00:00:00.000 |            28 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-04 00:00:00.000 |   2016 |               3 |             7 |            4 |  20160704 | July        | Jul 2016       | Q3 2016          |           1 | Monday        | 2016-07-09 00:00:00.000 |            28 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-05 00:00:00.000 |   2016 |               3 |             7 |            5 |  20160705 | July        | Jul 2016       | Q3 2016          |           2 | Tuesday       | 2016-07-09 00:00:00.000 |            28 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-06 00:00:00.000 |   2016 |               3 |             7 |            6 |  20160706 | July        | Jul 2016       | Q3 2016          |           3 | Wednesday     | 2016-07-09 00:00:00.000 |            28 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-07 00:00:00.000 |   2016 |               3 |             7 |            7 |  20160707 | July        | Jul 2016       | Q3 2016          |           4 | Thursday      | 2016-07-09 00:00:00.000 |            28 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-08 00:00:00.000 |   2016 |               3 |             7 |            8 |  20160708 | July        | Jul 2016       | Q3 2016          |           5 | Friday        | 2016-07-09 00:00:00.000 |            28 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-09 00:00:00.000 |   2016 |               3 |             7 |            9 |  20160709 | July        | Jul 2016       | Q3 2016          |           6 | Saturday      | 2016-07-09 00:00:00.000 |            28 |     20160700 |       20160300 |          16 | FY17 |
| 2016-07-10 00:00:00.000 |   2016 |               3 |             7 |           10 |  20160710 | July        | Jul 2016       | Q3 2016          |           0 | Sunday        | 2016-07-16 00:00:00.000 |            29 |     20160700 |       20160300 |          16 | FY17 |


Table: Locations
| Location ID   | Name            | County           | State Code   | State       | Type   |   Latitude |   Longitude |   Area Code |   Population |   Households |   Median Income |   Land Area |   Water Area | Time Zone        |
|:--------------|:----------------|:-----------------|:-------------|:------------|:-------|-----------:|------------:|------------:|-------------:|-------------:|----------------:|------------:|-------------:|:-----------------|
| A100          | Bridgeport      | Fairfield County | CT           | Connecticut | City   |    41.167  |    -73.2048 |         203 |       147629 |        50367 |           41801 |    41591056 |      8721419 | America/New York |
| A102          | Hartford        | Hartford County  | CT           | Connecticut | City   |    41.7637 |    -72.6851 |         959 |       124006 |        45239 |           30630 |    45016120 |      1748078 | America/New York |
| A104          | New Haven       | New Haven County | CT           | Connecticut | City   |    41.3081 |    -72.9282 |         203 |       130322 |        49771 |           37192 |    48407373 |      3739487 | America/New York |
| A106          | Stamford        | Fairfield County | CT           | Connecticut | City   |    41.0534 |    -73.5387 |         203 |       128874 |        46974 |           79359 |    97430571 |     37323740 | America/New York |
| A108          | Waterbury       | New Haven County | CT           | Connecticut | City   |    41.5581 |    -73.0515 |         203 |       108802 |        40213 |           40467 |    73880017 |      1086045 | America/New York |
| A111          | Cape Coral      | Lee County       | FL           | Florida     | City   |    26.5629 |    -81.9495 |         941 |       175229 |        58967 |           50536 |   273544395 |     35010453 | America/New York |
| A112          | Clearwater      | Pinellas County  | FL           | Florida     | City   |    27.979  |    -82.7666 |         727 |       113003 |        46234 |           44198 |    67027321 |     36469162 | America/New York |
| A113          | Coral Springs   | Broward County   | FL           | Florida     | City   |    26.2712 |    -80.2706 |         954 |       129485 |        40571 |           66430 |    61625913 |       520928 | America/New York |
| A115          | Fort Lauderdale | Broward County   | FL           | Florida     | City   |    26.1223 |    -80.1434 |         954 |       178590 |        73446 |           50778 |    89672308 |      4372775 | America/New York |
| A116          | Gainesville     | Alachua County   | FL           | Florida     | City   |    29.6516 |    -82.3248 |         352 |       130128 |        47968 |           31818 |   161411152 |      3017660 | America/New York |


Table: Products
| Product ID   | Product Name   |   Cost |   Original Sale Price | Discount Code   |   Discount |   Current Price |   Taxes |
|:-------------|:---------------|-------:|----------------------:|:----------------|-----------:|----------------:|--------:|
| 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         | 2016-01-01 00:00:00.000 |          1 |
| AX10091    | ENX2051      | A149          | EMP1017           | C1707         | 2016-01-30 00:00:00.000 |          1 |
| AX10237    | ENX2080      | A169          | EMP1017           | C1578         | 2016-12-11 00:00:00.000 |          1 |
| AX10370    | ENX2011      | A131          | EMP1017           | C1419         | 2015-07-16 00:00:00.000 |          1 |
| AX10395    | ENX2085      | A109          | EMP1017           | C1402         | 2015-11-20 00:00:00.000 |          1 |
| AX10413    | ENX2000      | A137          | EMP1017           | C1345         | 2015-08-20 00:00:00.000 |          1 |
| AX10488    | ENX2028      | A175          | EMP1017           | C1169         | 2015-09-29 00:00:00.000 |          1 |
| AX10534    | ENX2077      | A193          | EMP1017           | C1479         | 2016-03-07 00:00:00.000 |          1 |
| AX10545    | ENX2079      | A128          | EMP1017           | C1695         | 2017-12-18 00:00:00.000 |          1 |
| AX10556    | ENX2097      | A101          | EMP1017           | C1010         | 2016-01-08 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: Customers
data: Customers.csv
name: Dates
data: Dates.csv
name: Locations
data: Locations.csv
name: Products
data: Products.csv
name: Sales
data: Sales.csv
name: Salespeople
data: Salespeople.csv
label: Sales
Customer ID
Customers
Customer ID
Sales
Location ID
Locations
Location ID
Sales
Product ID
Products
Product ID
Sales
Sales Person ID
Salespeople
Salesperson ID
Sales
Purchase Date
Dates
Date
output: {
    "joins": [
        {
            "from_table": "Sales",
            "from_column": "Customer ID",
            "to_table": "Customers",
            "to_column": "Customer ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Location ID",
            "to_table": "Locations",
            "to_column": "Location ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Product ID",
            "to_table": "Products",
            "to_column": "Product ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Sales Person ID",
            "to_table": "Salespeople",
            "to_column": "Salesperson ID"
        },
        {
            "from_table": "Sales",
            "from_column": "Purchase Date",
            "to_table": "Dates",
            "to_column": "Date"
        }
    ]
}