Есть ли способ показать все данные с совпадающими полями в sql? - PullRequest
1 голос
/ 09 апреля 2020

У меня есть 2 таблицы

куб.м sH

hh_id   | name  | age
9437556 | John  | 40
9886016 | Doe   | 35

куб.м

hh_id   | name  | age
9437556 | Peter | 41
9886016 | Tony  | 35
9886016 | Thor  | 32
9886016 | Loki  | 30

И я ожидаю вот так

hh_id   | name  | age
9437556 | John  | 40
9437556 | Peter | 41
____________________________

hh_id   | name  | age
9886016 | Doe   | 35
9886016 | Tony  | 35
9886016 | Thor  | 32
9886016 | Loki  | 30
____________________________

Я попробовал это

SELECT cbmsh.hh_id AS head_hhid, cbmsh.barangay AS head_barangay, cbmsh.memno AS head_memno,cbmsh.last_name AS head_last ,cbmsh.first_name AS head_first ,cbmsh.mid_name AS head_mid,cbmsh.relationship,cbmsh.sex AS head_sex,cbmsh.birthdate AS head_birthdate,cbmsh.age AS head_age,cbmsh.occupation AS head_occupation,cbmsh.pwd_ind, cbms.hh_id AS mem_hhid, cbms.barangay, cbms.memno,cbms.last_name AS mem_last,cbms.first_name AS mem_first,cbms.mid_name AS mem_mid,cbms.relationship AS mem_relationship,cbms.sex AS mem_sex,cbms.birthdate AS mem_birthdate,cbms.age AS mem_age,cbms.occupation AS mem_occupation,cbms.pwd_ind
FROM cbmsh, cbms
WHERE cbmsh.hh_id = cbms.hh_id
GROUP BY head_hhid

Но он показывает только 1 данные, подобные этой. Вместо того, чтобы показывать все записи с одинаковым hh_id

hh_id   | name  | age
9886016 | Doe   | 35
9886016 | Tony  | 35

Может кто-нибудь помочь мне в этом? Любая помощь будет оценена! Добрый день всем

1 Ответ

0 голосов
/ 09 апреля 2020

У вас две проблемы.

  1. Вы не хотите JOIN таблицы, вы хотите UNION их. JOIN - для объединения связанных строк двух таблиц в одну строку в результатах. Но вы хотите, чтобы все строки были отдельными.
  2. Вы не хотите GROUP BY, который используется для объединения строк с одинаковым значением столбца в одну строку (например, при подсчете или суммировании по строкам). ). Если вы хотите хранить строки отдельно, но вместе, вы используете ORDER BY.

Таким образом, запрос должен быть

SELECT *
FROM (
    SELECT hh_id, name, age
    FROM cbmsh
    UNION
    SELECT hh_id, name, age
    FROM cbms
) x
ORDER BY hh_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...