У меня есть 2 стола: Person and House. У каждого человека есть имя, адрес электронной почты и номер телефона, в то время как в доме есть несколько комнат и город. Я должен показать каждому человеку имя и ряд домов, где количество домов - это количество домов, которые у него есть.Подсчет домов для каждого человека в MySQL
Это, кажется, отношение один-имеет-многие. Так вот мой запрос для Person таблице:
CREATE TABLE Person (person_id INT NOT NULL PRIMARY KEY,
name VARCHAR(15) NOT NULL,
email VARCHAR(320) NOT NULL,
phone_number VARCHAR(15) NOT NULL);
и вот запрос Палаты таблицы:
CREATE TABLE House (
house_id INT NOT NULL PRIMARY KEY,
person_id INT NOT NULL,
number_of_rooms INT NOT NULL,
city_location VARCHAR(15) NOT NULL,
FOREIGN KEY(person_id) REFERENCES Person(person_id));
Как показать, сколько домов у каждого человека, я написал этот запрос:
SELECT name AS "Person name", count(house_id) AS "Number of houses" FROM Person JOIN House WHERE Person.person_id = House.person_id;
Но этот запрос только показывает только первое имя, которое я уже вставлен (вставленный более) и сумму house_id для этого имени (для house_id # 1 & # 2 & # 3 результат должен быть как 3, но он показывает 6) и все.
Когда я впервые об этом подумал, это очень легко построить, я не знаю, почему я трачу столько времени на это. Любая помощь?
Точно! он работал просто отлично! и когда это сработало, я действительно подумал: «Почему я пропустил это?» : -/Thanks Gordon –