2017-01-04 3 views
0

Kann mir jemand sagen, wie ich aus zwei Tabellen auswählen kann? Ich habe diese Tabellen.Wie aus zwei Tabellen in SQL auswählen?

Die erste heißt: Tiere

Es gibt:

id owner_name  animal_name 
1 ludvik120  Larry 
2 marekk50  Pat 
3 ludvik120  Riki 

Der zweite heißt: Animal_food

Es gibt:

id owner_name  food 
1 marekk50  carrot 
2 ludvik120  apple 
3 ludvik120  orange 

Wha t i erreichen wollen ausgegeben:

Pat - carrot, Larry - apple, Riki - orange

Wie Sie die Spalten sehen können "owner_name" sind gleich. Ist es möglich, so zu machen oder nicht?

+1

Blick auf beitreten Erklärung – apomene

+0

Nein, Sie können nicht, wie sie nicht einzigartig sind. Denn wenn du mitmachst, wirst du auch 'Larry - orange' und' Riki - apple' zurückgeben. Denken Sie an alle möglichen Permutationen – Edward

+0

Und einige Ratschläge, wie kann ich es tun? Becouse ich bin neu darin. – ludvik120

Antwort

0

Ja, ist es. SQL-Joins werden verwendet, um Zeilen aus zwei oder mehr Tabellen zu kombinieren.

Verschiedene Arten von Joins:

  1. (INNER) JOIN: Wählen Sie Datensätze, die passenden Werte in beiden Tabellen haben.
  2. LINKE (AUSSEN) VERBINDUNG: Wählen Sie Datensätze aus der ersten (ganz links) Tabelle mit passenden richtigen Tabellendatensätzen aus.
  3. RECHTE (AUSSEN) VERBINDUNG: Wählen Sie Datensätze aus der zweiten (am weitesten rechts) Tabelle mit übereinstimmenden linken Tabellensätzen.
  4. FULL (OUTER) JOIN: Wählt alle Datensätze aus, die entweder den linken oder rechten Tabellendatensätzen entsprechen.

Allgemeine Syntax: SELECT Spaltennamen FROM Tabellen name1 JOIN tabellen name2 ON Spalte Laufwerkname1 = column-name2 WHERE-Bedingung

Der Programmierer, um herauszufinden, braucht die man ihm passt/sie entsprechend ihren/ihren Forderungen im Programm.

+0

Und können Sie mir sagen, was ich brauche? Und wie ? Ich bin total neu darin – ludvik120

+0

Bitte folgen Sie diesem Link: - http://www.dofactory.com/sql/join – Dreamer

+0

Ok, ich danke Ihnen ein Versuch es und sagen Sie das Ergebnis – ludvik120

1
  1. Versuchen Sie, diese

    SELECT Animals.animal_name, Animal_food.food 
    FROM Animals 
    LEFT JOIN Animal_food 
    ON Animals.owner_name=Animal_food.owner_name; 
    
  2. beide Felder

    SELECT COALESCE(Animals.animal_name, ' - ') || COALESCE(Animal_food.food, ' - ') 
    FROM Animals 
    LEFT JOIN Animal_food 
    ON Animals.owner_name=Animal_food.owner_name; 
    
+0

Sorry, aber das hat nicht funktioniert. – ludvik120

0
I recomend to use Ids like this: 
Animals 
AnimalId owner_name  animal_name 
1   ludvik120  Larry 
2   marekk50  Pat 
3   ludvik120  Riki 

Animal_food 
Animal_foodId owner_name  food 
1    marekk50  carrot 
2    ludvik120  apple 
3    ludvik120  orange 

I think you need a third table to join and show the information as you need. 

Relation

RelationId  AnimalId  Animal_foodId 
1    2    1 
2    1    2 
3    3    3 
verketten

Und die Frage ist:

Select A.animal_name, F.food 
from Relation R 
inner join Animals A on R.AnimalId = A.AnimalId 
inner join Animal_food F on R.Animal_foodId = F.Animal_foodId 

gut aussehen.

+0

Ok, danke für den Rat, ich versuche es irgendwie: D – ludvik120

Verwandte Themen