PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Fare riferimento a una riga da un'altra tabella (PostgreSQL)

Se ho capito bene, dovresti leggere i concetti di base dei database relazionali (es. http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html ). Le tue tabelle dovrebbero apparire così:

CREATE TABLE post(
    post_id INT,
    user_id INT
);

CREATE TABLE user (
    user_id INT
);

Questa è fondamentalmente una relazione uno-a-molti tra utente e post, il che significa che un utente può avere molti post. Se vuoi tutti i post di un utente (in questo caso l'utente con id 1), puoi ottenerli in questo modo:

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

Come posso vedere nella tua domanda, potresti voler mappare il risultato su un modello orientato agli oggetti. Questo dipende molto dalla tecnologia/lingua che stai usando. La maggior parte delle tecnologie offre librerie per connettersi a sistemi di database come PostgreSQL, aprire e chiudere connessioni per avviare query e recuperare i risultati. In questo caso devi mappare tu stesso i risultati. Ma ci sono anche mappatori avanzati come Hibernate che cercano di fare questo lavoro per te. Ma per usarli, dovresti avere una buona conoscenza delle tecnologie "sotto il cofano".