2017-09-12 1 views
0

Supposons que nous ayons deux tables, membre et société, les deux tables ont l'ID comme clé primaire. Si je définis une colonne company_id dans la table de membres comme une clé étrangère, dans la requête de sélection, la colonne présente une valeur entière.référence à la ligne de clé étrangère postgresql

Comment puis-je permettre d'accéder aux autres colonnes de la table de l'entreprise, telles que le nom, le numéro de téléphone et l'adresse e-mail?

Option 1: Peut-on obtenir un objet/tableau de l'enregistrement référencé? exemple: copmany_id_1 [nom, numéro de téléphone, adresse e-mail]

Option 2: Peut-on y accéder via company_id.name ou company_id.phone?

Option 3: Pouvons-nous obtenir la liste des colonnes de clé étrangère et leur table et colonne référencées et déclencher une autre requête pour obtenir le résultat? ce sera beaucoup plus lent si la table contient beaucoup de clés étrangères.

+0

Est-ce MySQL ou Postgres? – tadman

+0

C'est la base de données postgres –

+0

Lire sur les jointures –

Répondre

0

Je suppose que l'accès signifie la sélection des lignes de la table pertinente. Vous pouvez utiliser un join pour accéder aux colonnes de l'autre table.

SELECT c.company_id,c.company_name, c.company_phone,m.member_id 
FROM company c 
INNER JOIN member m 
ON member.company_id = company .company_id; 

Si vous souhaitez apporter des modifications aux colonnes de la table d'entreprise, vous pouvez le faire en le sélectionnant comme ceci.