1

Ich habe eine Tabelle für lawyers:Abrufen von Werten aus zwei Tabellen ein Wert in einer dritten Karte gegeben/Join-Tabelle

CREATE TABLE lawyers (
    id SERIAL PRIMARY KEY, 
    name VARCHAR, 
    name_url VARCHAR, 
    pic_url VARCHAR(200) 
); 

Stellen Sie sich den ganzen Tisch wie folgt aussieht:

enter image description here

Und eine Tabelle für firms:

CREATE TABLE firms (
    id SERIAL PRIMARY KEY, 
    name VARCHAR, 
    address JSONb 
); 

Ganze Tabelle:

enter image description here

Dann viele zu viele Beziehung zur Karte Ich bin eine Karte Tabelle mit lawyers_firms:

CREATE TABLE lawyers_firms (
    lawyer_id INTEGER, 
    firm_id INTEGER 
); 

Ich bin nicht sicher, wie aus lawyers Werte abrufen und von firms gegeben ein lawyers_firms.firm_id.

Zum Beispiel:

1. SELECT name, name_url and pic_url FROM lawyers. 
2. also SELECT name and address FROM firms. 
3. WHERE `lawyers_firms.firm_id` = 1. 

Antwort

1

Versuchen Sie folgendes:

SELECT l.name, l.name_url, l.pic_url, f.name, f.address 
FROM lawyers l 
inner join lawyers_firms lf 
on lf.lawyer_id = l.id 
inner join firms f 
on f.id = lf.firm_id 
WHERE lf.firm_id = 1; 
+0

Nach Link hat eine gute Erklärung auf dem Tisch verbindet [link] (http://www.tutorialspoint.com/postgresql/postgresql_using_joins. htm) –

+0

Wow, das hat funktioniert, musste aber ein paar kleinere Korrekturen vornehmen: Bitte editieren Sie Ihren Beitrag, damit ich antworten und antworten kann: SELECT l.name, l.name_url, l.pic_url, f.name, f.Adresse VON Anwälten l inner join Anwälte_Firms lf on lf.lawyer_id = l.id Inner Join Firmen f auf f.id = lf.firm_id WHERE lf.firm_id = 1; – Jeka

Verwandte Themen