I have 6 tables
CREATE TABLE countries (
country_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(25) NOT NULL,
created_by VARCHAR(50) DEFAULT 'test@industechnology.com',
created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50) NULL,
updated_date TIMESTAMP NULL,
operational_status BOOLEAN DEFAULT 1,
PRIMARY KEY ( country_id )
);
CREATE TABLE states (
state_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
country_id TINYINT UNSIGNED,
name VARCHAR(50) NOT NULL,
created_by VARCHAR(50) DEFAULT 'test@industechnology.com',
created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50) NULL,
updated_date TIMESTAMP NULL,
operational_status BOOLEAN DEFAULT 1,
FOREIGN KEY ( country_id ) REFERENCES countries( country_id ),
PRIMARY KEY ( state_id )
);
CREATE TABLE cities (
city_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
state_id TINYINT UNSIGNED,
name VARCHAR(25) NOT NULL,
created_by VARCHAR(50) DEFAULT 'lurtnowski@industechnology.com',
created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50) NULL,
updated_date TIMESTAMP NULL,
operational_status BOOLEAN DEFAULT 1,
FOREIGN KEY ( state_id ) REFERENCES states( state_id ),
PRIMARY KEY ( city_id )
);
CREATE TABLE buildings (
building_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
city_id TINYINT UNSIGNED,
name VARCHAR(25) NOT NULL,
created_by VARCHAR(50) DEFAULT 'lurtnowski@industechnology.com',
created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50) NULL,
updated_date TIMESTAMP NULL,
operational_status BOOLEAN DEFAULT 1,
FOREIGN KEY ( city_id ) REFERENCES cities( city_id ),
PRIMARY KEY ( building_id )
);
CREATE TABLE rooms (
room_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
building_id TINYINT UNSIGNED,
name VARCHAR(25) NOT NULL,
created_by VARCHAR(50) DEFAULT 'lurtnowski@industechnology.com',
created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50) NULL,
updated_date TIMESTAMP NULL,
operational_status BOOLEAN DEFAULT 1,
FOREIGN KEY ( building_id ) REFERENCES buildings( building_id ),
PRIMARY KEY ( room_id )
);
CREATE TABLE locations (
location_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
room_id TINYINT UNSIGNED,
name VARCHAR(25) NOT NULL,
created_by VARCHAR(50) DEFAULT 'lurtnowski@industechnology.com',
created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_by VARCHAR(50) NULL,
updated_date TIMESTAMP NULL,
operational_status BOOLEAN DEFAULT 1,
FOREIGN KEY ( room_id ) REFERENCES rooms( room_id ),
PRIMARY KEY ( location_id )
);
I think all the relationships are right.
I’m trying to get all the lo cations of a country,
my query is
SELECT countries.name AS country_name,
states.name AS state_name,
cities.name AS cities_name,
buildings.name AS building_name,
rooms.name AS room_name,
locations.name AS location_name
FROM locations
INNER JOIN states ON cities.state_id = states.state_id
INNER JOIN cities ON states.city_id = cities.city_id
INNER JOIN buildings ON cities.building_id= buildings.building_id
INNER JOIN rooms ON buildings .room_id = rooms.room_id
WHERE country_id = 1;
This seems like it should work, but how would I retrieve the country_name?