Wie kann ich mehrere Tabellen Abfragen mit inner join?
Gegeben, die zur Erstellung der Tabelle SQL und SQL einfügen, Wie kann ich das generieren einer Abfrage zum anzeigen der Informationen in einer bestimmten Art und Weise?
CREATE TABLE cities (
id serial NOT NULL UNIQUE PRIMARY KEY,
iname varchar(100) NOT NULL UNIQUE
)
CREATE TABLE suburbs (
id serial NOT NULL UNIQUE PRIMARY KEY,
icity integer REFERENCES cities (id),
iname varchar(100) NOT NULL UNIQUE
)
CREATE TABLE type (
id serial NOT NULL UNIQUE PRIMARY KEY,
iname varchar(100) NOT NULL UNIQUE
)
CREATE TABLE sale (
id serial NOT NULL UNIQUE PRIMARY KEY,
iname varchar(100) NOT NULL UNIQUE
)
CREATE TABLE estate (
id serial NOT NULL UNIQUE PRIMARY KEY,
icity integer REFERENCES cities (id),
isuburb integer REFERENCES suburbs (id),
itype integer REFERENCES type (id),
isale integer REFERENCES sale (id),
idescription text,
itimestamp timestamp DEFAULT CURRENT_TIMESTAMP
)
INSERT INTO cities (iname) VALUES ('Johannesburg');
INSERT INTO suburbs (icity, iname) VALUES (1, 'Westbury');
INSERT INTO type (iname) VALUES ('Room');
INSERT INTO sale (iname) VALUES ('Rent');
INSERT INTO estate (icity, isuburb, itype, isale, idescription) VALUES (1, 1, 1, 1, 'A Nice place in a real bad neighbor hood');
Nun möchte ich die Zahlenwerte sind in der Tabelle estate werden angezeigt, indem Sie die string-Werte, die Sie repräsentieren.
E. G
1 Johannesburg, Westbury, Zimmer, Miete, Beschreibung
Was wird die SQL-Abfrage sein, ich bin mehr besorgt über postgreSQL.
- Wörtlich alle Werte, wie jede einzelne Spalte? Und ist das MySQL oder PostgreSQL?
- Sie wollen ein
JOIN
auf alle Spalten aus jeder Tabelle? Irgendeinem Grund Sie das tun wollen? - Ich bin der Konvertierung von mysql zu postgreSQL-so wird es sein, postgreSQL, Sowie bestimmte Werte, die aus jeder Tabelle sind einige Tabellen verwendet werden, als Referenz-Tabellen.
- Sollten Sie post von der Tabelle Definitionen oder zumindest die Spalten in passende dann, wenn Sie mehr sinnvolle Antworten.
- Was haben Sie versucht, und welches Ergebnis erhalten Sie? Wo GENAU sind Sie stecken geblieben?
- Nur ein heads-up, dass Ihre
cities
undsuburbs
Tabellen sind nicht normalisiert mit Bezug aufestate
. Alsestate
beziehen kann, die direkt an eine Stadt und Vorstadt und Vorort ist schon enthalten in einer Stadt, die laut Ihrer Tabelle defs. - danke ich war auf der Suche für das Wort Normalisierung.
- WÄHLEN Sie Immobilien.id, Städte.iname, Vororten.iname VON Immobilien INNER JOIN Städte AUF Immobilien.icity = Städte.id INNER JOIN estate estate.iname AN den Rändern.id;
- vergessen Sie nicht, mark zu beantworten als angenommen, wenn Sie bekam die Informationen, die Sie wollen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst müssen Sie irgendeine Art von gemeinsamen Feld. Nehmen wir an, das gemeinsame Feld zwischen Ihnen heißt
<tablename>_ID
; die Art, wie Sie es tun, ist wie folgt:du cany versuchen wie
Letzten
Wenn Sie möchten, um Informationen über Verknüpfungen haben, schauen Sie auf unten stehende Bild
Ans-in : Wie kann ich entscheiden, Wann rechts-joins/left joins oder inner joins Oder wie Sie bestimmen, welche Tabelle auf welcher Seite?
In der Regel sind Sie auf der Suche für ein mitmachen..
etc...
Könnte man es so machen :
Überprüfen Sie, diesem Beispiel gemäß ur ques.