PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Odwołanie do wiersza z innej tabeli (PostgreSQL)

Jeśli dobrze rozumiem, powinieneś przeczytać o podstawowych pojęciach relacyjnych baz danych (tj. http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html ). Twoje stoły powinny wyglądać tak:

CREATE TABLE post(
    post_id INT,
    user_id INT
);

CREATE TABLE user (
    user_id INT
);

Jest to w zasadzie relacja jeden-do-wielu między użytkownikiem a postem, co oznacza, że ​​jeden użytkownik może mieć wiele postów. Jeśli chcesz wszystkie posty użytkownika (w tym przypadku użytkownika o id 1), możesz je otrzymać w ten sposób:

SELECT * FROM user u
LEFT JOIN post p ON u.user_id = p.user_id
WHERE user_id = 1;

Jak widzę w twoim pytaniu, możesz chcieć zmapować wynik do modelu zorientowanego obiektowo. Zależy to w dużej mierze od używanej technologii/języka. Większość technologii oferuje biblioteki umożliwiające łączenie się z systemami baz danych, takimi jak PostgreSQL, otwieranie i zamykanie połączeń, uruchamianie zapytań i odzyskiwanie wyników. W takim przypadku musisz sam zmapować wyniki. Ale istnieją również zaawansowane mapery, takie jak hibernacja, które próbują wykonać tę pracę za Ciebie. Jednak aby z nich korzystać, należy dobrze znać technologie „pod maską”.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najszybszy sposób skrócenia znaczników czasu do 5 minut w Postgresie?

  2. Hibernacja i postgreSQL z Grails

  3. PostgreSQL regexp_replace z dopasowanym wyrażeniem

  4. Istnieje wiersz kontrolny Pythona psycopg2

  5. Hibernacja problemu niezgodności kolumn postgresql/hsqldb TEXT