PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Позоваване на ред от друга таблица (PostgreSQL)

Ако ви разбирам правилно, трябва да прочетете за основните концепции на релационните бази данни (т.е. http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html ). Вашите таблици трябва да изглеждат така:

CREATE TABLE post(
    post_id INT,
    user_id INT
);

CREATE TABLE user (
    user_id INT
);

Това всъщност е връзка "един към много" между потребител и публикация, което означава, че един потребител може да има много публикации. Ако искате всички публикации на даден потребител (в този случай потребителят с идентификатор 1), можете да ги получите по следния начин:

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

Както виждам във вашия въпрос, може да искате да картографирате резултата към обектно-ориентиран модел. Това зависи много от технологията/езика, който използвате. Повечето технологии предлагат библиотеки за свързване със системи за бази данни като PostgreSQL, отваряне и затваряне на връзки, стартиране на заявки и връщане на резултатите. В този случай трябва сами да картографирате резултатите. Но има и напреднали картографи като hibernate, които се опитват да свършат тази работа вместо вас. Но за да ги използвате, трябва да имате добри познания за технологиите "под капака".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL състояние:42601 синтактична грешка при или близо до 11

  2. Django моделира един външен ключ към много таблици

  3. ГРЕШКА:операторът не съществува:числово ~* неизвестно

  4. Как да създадете редни числа в PostgreSQL

  5. Върнете SETOF редове от функцията PostgreSQL