neo1986kk
11.12.2011, 12:24:07
Chodzi mi o to ze mam 2 bazy na przyklad
baza zwierzeta
id, imie,wiek
1 burek 5
2 kicia 3
3 max 12
baza ludzie
id, imie, wiek
1 marta 14
2 kasia 12
3 konrad 19
no i chce sobie pobrac wiek z tych 2 tabel
select imie,wiek from zwierzeta union select imie,wiek from ludzie
i teraz nadchodzi sedno sprawy
while($row=mysql_fetch_assoc($sql))
{
$row['imie'] ma $row['wiek'] lat, dane pobrane z tabeli (i tutaj chcialbym napisać, z której tabeli wzial dane)
}
domyslam sie ze są 2 opcje
1. nie da się bez dodatkowych kolumn kontrolnych w tabelach.
2. nalezy przy pobieraniu nadać jakąś dodatkową zmienną, jeśli tak to jak to zrobić?
croc
11.12.2011, 12:33:32
Musisz pobrać pseudokolumnę we wszystkich połączonych zapytaniach.
neo1986kk
11.12.2011, 12:48:14
no to sie domysllilem ale jak to zrobic walsnie
mam poprostu do zapytania dodac np
select *, pseudo='z' as pseudo from zwierzeta union select *, pseudo='l' as pseudo from ludzie
while($row=mysql_fetch_assoc($sql))
{
if($row['pseudo']==z) //zwierzeta
else //ludzie
}
dobrze kombinuję?
no to sie domysllilem ale jak to zrobic walsnie
mam poprostu do zapytania dodac np
select *, pseudo='z' as pseudo from zwierzeta union select *, pseudo='l' as pseudo from ludzie
while($row=mysql_fetch_assoc($sql))
{
if($row['pseudo']==z) //zwierzeta
else //ludzie
}
dobrze kombinuję?
croc
11.12.2011, 12:56:26
Prawie

SELECT *, 'z' AS pseudo FROM zwierzeta UNION SELECT *, 'l' FROM ludzie
W drugiej tabeli już nie musisz podawać aliasu, bo i tak pola muszą się zgadzać po kolei.
neo1986kk
11.12.2011, 13:04:16
a nie wyswietli mi bledu ze nie ma kolumny "z" w tabeli?
croc
11.12.2011, 13:14:40
Ale to forum dzisiaj zamula...
Możesz pobierać bez oporów dane będące czymś innym niż wartości z pól. Pamiętaj, że zgodnie ze składnią SQL nawet zapytania w stylu:
SELECT 1, 5 - 8, 'kapusta'
są jak najbardziej poprawne
neo1986kk
11.12.2011, 13:18:10
no zamula strasznie, aha no to dzięki za pomoc, pozdrawiam
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.