jagon
3.07.2011, 16:16:23
Witam Was. Mam pewien problem ze scaleniem a następnie posortowaniem (wg.daty) rekordów z 2 tabel.
tabela 'pliki':
file_id
file_name
file_link
file_date
tabela 'pliki2':
file_id
file_name
file_link
file_date
Wydaje mi się że trzeba to wykonać za pomocą JOIN, lecz obie tabele nie mają żadnej wspólnej części komórki. Chcę tego, aby rekordy z obu tych kolumn były wyświetlanie "na jednej liście" a następnie posortowane wg daty (w tym przypadku wystarczy za pomocą DESC).
Proszę o pomoc. Pozdrawiam.
kefirek
3.07.2011, 17:00:40
SELECT * FROM (
SELECT * FROM pliki
UNION ALL
SELECT * FROM pliki2
) AS tmp ORDER BY file_date DESC
jagon
4.07.2011, 06:36:08
Kod wygląda tak:
Kod
$query = "SELECT * FROM (
SELECT * FROM pafiledb_files
UNION ALL
SELECT * FROM pafiledb_files_filehosting
) AS tmp ORDER BY file_id DESC";
$idquery = mysql_query($query);
while($sql_listing_torrentt = mysql_fetch_row($idquery))
{
echo $sql_listing_torrentt[0]."<br>";
}
Zgodnie s przykładem Kefirka, jednak wywala błąd.
Odświeżam.
A google gryzie, morduje, molestuje? - nie wiec zacznij używać
http://www.miotk.eu/index.php?option=com_c...l&Itemid=45
jagon
6.07.2011, 20:07:50
DZięki, postąpiłem zgodnie z przykładami zastosowania UNION. Wyniki wyświetlane są tak jak chcę, mogę ustawić ilość wyświetlanych rekordów z bazy nr 1, tak samo z bazy nr 2 i wiele innych. Natomiast problem jest tej natury, że wyniki są wyświetlane tylko wtedy gdy w pierwszej i drugiej bazie ID rekordów nie są jednakowe.
Przykładowo: Chcę wyświetlić łącznie 10 rekordów z bazy nr 1 i 2, w obu bazach ID zaczynają się one od wartości 1. Pojawia się błąd, lecz w momencie gdy chcę wyświetlić 10 rekordów, sortując wg. nazwy (każdy rekord posiada inną nazwę) wtedy wyniki są wyświetlane prawidłowo.
Chcę otrzymywać wyniki nie bacząc na takie samo ID. Jak tego dokonać?