I tried to create a new table that has columns from 2 tables province and district_ward. Both tables have a column NAME, but different values; both tables have a column PROVINCE_ID (same value) and this is the column I tried to match.
Expected output is
PROVINCE_ID / NAME / NAME
Find all NAME from district_ward that match NAME = "Vung Tau" in province, through PROVINCE_ID column.
This is my query, however it throws an error
1066: 'not unique table/alias'
USE db1;
SELECT province.PROVINCE_ID, province.NAME, district_ward.NAME
FROM province as p, district_ward as d
INNER JOIN d ON p.PROVINCE_ID=d.PROVINCE_ID and p.NAME = "Vũng Tàu"
GROUP BY p.PROVINCE_ID
CodePudding user response:
Maybe you should try this one:
USE db1;
SELECT province.PROVINCE_ID, province.NAME, district_ward.NAME
FROM province as p
INNER JOIN district_ward as d USING (PROVINCE_ID)
WHERE p.NAME = "Vũng Tàu"
GROUP BY p.PROVINCE_ID;
CodePudding user response:
Do not use "comma JOIN"
FROM province as p, district_ward as d
INNER JOIN d ON ...
Instead, do
FROM province as p
INNER JOIN district_ward as d ON ...
(Optionally use USING instead of ON -- But that's not where the problem is.)
