Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyciaganie danych z kilku tabel...
Forum PHP.pl > Forum > Bazy danych > MySQL
coolb
Witam.
Probuje wyciagnac dane z dwoch tabel o jednakowej strukturze poleceniem:

[php:1:be7c91083d]<?php

$zapytanie ="SELECT tabela1.*, tabela2.* FROM tabela1, tabela2";
$wykonaj = mysql_query($zapytanie) or die(mysql_error());
while($wiersz = mysql_fetch_array($wykonaj))
{
...
}
?>[/php:1:be7c91083d]

w otzrymanych wynikach znajduja sie tylko rekordy z tabeli2, powatarzajace sie kilkanascie razy.
Co jest nie tak?
Dzieki za pomoc

CoolB[/sql][/code]
DeyV
W ten sposób mozesz pobierać dane tylko z tabel jako¶ z sob± połaczonych, np. przy pomocy JOIN.
coolb
Cytat
W ten sposób mozesz pobierać dane tylko z tabel jako¶ z sob± połaczonych, np. przy pomocy JOIN.


Dziekuje za podpowiedz.
Ale jak mam skonfigurowac zapytanie by polaczyc(odpowiednio) wszystkie pola z obydwu tabel. Zalezy mi na tym, by nie podawac wszystkich nazw pol poniewaz jest bardzo duzo.
DeyV
Cytat
JOIN
The USING (column_list) clause names a list of columns that must exist in both tables. A USING clause such as:  
A LEFT JOIN B USING (C1,C2,C3,...)

is defined to be semantically identical to an ON expression like this:  
A.C1=B.C1 AND A.C2=B.C2 AND A.C3=B.C3,...
coolb
Witam ponownie.
Probowalem cos takiego:

[php:1:3fbf6ecb19]

$zapytanie ="SELECT * FROM tabela1 LEFT JOIN tabela2 USING (kol1, kol2, kol3)

[/php:1:3fbf6ecb19]

i nic... tzn
mysql zwraca puste wyniki
Co robie nie tak?
Zalezy mi na polaczeniu dwoch tabel, a nastepnie wyswietleniu posortowanych wszystkich wynikow.
DeyV
proszę z strukture tabel, i przykładawe dane
coolb
Obydwie tabele (maj i czerwiec) sa identyczne pod wzgledem struktury. Jest ona nastepujaca:
id int(2) NOT NULL AUTO_INCREMENT, dzien char(2) NOT NULL, miesiac char(15) NOT NULL, miesiacnr char (5), rok char(4) NOT NULL, godz char(5) NOT NULL, tytul char(30) NOT NULL, ... - l

Obydwie tabele zawieraja okolo 30 rekordow.
Zalezy mi na wyswietleniu tylko 4 pol: dzien, miesiac, miesiacnr, tytul i na podstawie ich posrtowanie wynikow.

Pozdrawiam
uboottd
DeyV: koncem nosa czuje ze mu raczej chodzi o:
[sql:1:034689ecc7]
select * from tabela1
union
select * from tabela2
[/sql:1:034689ecc7]
Ale nie wiem jestem pewien
coolb
Witam.
Chodzilo mi dokladnie o to co napisales.
Problem byl rowniez w tym, ze posiadalem stara wersje (3.23) bazy MySQL.
Dzieki za pomoc.
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.