Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Polaczenie tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
one_eddie
W jaki sposob moge polaczyc tabele nizej pokazane tabele...

table1
Id | Field1 | Field2

table2
Id | Field1 | Field2 | OtherField

tak aby otrzymac taka

Id | Field1 | Field2 | OtherField
rows...

jedyne co narazie udalo mi sie zrobic to:
  1. SELECT *
  2. FROM table1 AS t1, table2 AS t2 WHERE (t1.ID = 1) OR (t2.ID = 1)

Id | Field1 | Field2 | Id | Field1 | Field2 | OtherField
rows...

czy jest wogole taka mozliwosc?
Kinool
a gdzie tu sa relacje??

czy t1.field1 = t2.field1 czy poza nazwa jest tu cos takiego samego??
napisz lepej cos wiecej
one_eddie
nazwy kolumn i typy danych sa sa identyczne
SongoQ
To co pisal @Kinool Ci nie dziala?
one_eddie
Cytat(SongoQ @ 2005-05-19 15:13:02)
To co pisal @Kinool Ci nie dziala?

Przeciez on zadal 2 pytania nic wiecej wiec o czym mowa? Co ma mi dzialac?
Kinool
relacja t1.field1=t2.field1

  1. SELECT t2.*
  2. FROM t1, t2 WHERE t1.field1=t2.field1
najprosciej jak moze byc
one_eddie
  1. SELECT table2.*
  2. FROM table1, table2 WHERE table1.field1=table2.field1


Powoduje zanzaczenie rekordow z table2, rekordy z table1 nie sa wybierane.
A mi chodzi zeby polaczyc pasujace rekordy z table 1 i table 2 w calosc bez powtarzania nazw kolumn.

Wkoncu mi sie udalo poprawny select laczacy wyniki obydwu tabel wyglada tak:
  1. (SELECT Id, Field1, Field2, NULL
  2. FROM table1) UNION (SELECT Id, Field1, Field2, OtherField
  3. FROM table2);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.