Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 29.04.2003 Ostrzeżenie: (0%)
|
Tworzę stronę, gdzie w bazie danych przechowuję informacje o artystach i ich produkcjach. Potrzebuję na stronie wyświetlić Artystów, a pod nimi produkcje, które wydali. Wykonując takie zapytanie:
[php:1:95ec50eff5]<?php $ayt = mysql_query("SELECT * FROM wykonawcy order by nazwa"); while ($b=mysql_fetch_array($ayt)) { echo "<font size="4"><a href="?d=wykonawcy&wid=$b[id]">$b[nazwa]</a></font><br><br>"; $utw = mysql_query("select * from produkcje where wyk_id='$b[id]'"); while ($c=mysql_fetch_array($utw)) { echo "<li><a href="?d=produkcje&pid=$c[id]"><i>$b[nazwa] - $c[nazwa]</i></a><br>"; } } ?>[/php:1:95ec50eff5] otrzymuje wszystkich artystów ( nawet tych, którzy nie wydali ani jednej płyty ). Jak zapytać się tylko o tych artystów, którzy coś wydali ( no i oczywiście ich wyświetlić ) ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 10.07.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
ok... to powinno byc tak:
[sql:1:b79e529b67]select * from Wykonawcy left outer join Produkcje on Wykonawcy.Id=Produkcje.Wykonawca_id where nazwa not null[/sql:1:b79e529b67] Glowy w sumie za to nie dam bo left outer joiny zawsze troche "na chybil trafil" robie... ale jak zrobilem sobie analogiczny przyklad u mnie w bazie to zadzialal... Teoretycznie: polacza sie dwie tabele opierajac sie na Id=Wykonawcy.Id; left outer join spowoduje ze z pierwszej (lewej) tabeli wszystko "przejdzie" laczenie, a z drugiej tylko to co spelnia warunek (Id=Wykonawcy.Id); jesli pierwsza tabela nie bedzie miala swoich odpowiednikow po prawej stronie (czyli artysta nic nie wydal) to te pola zostana wypelnione NULLami; zatem wybieramy jakiekolwiek z tych pol i robimy warunek, ze np. nazwa czy opis czy Produkcje.id nie moze byc NULL... |
|
|
|
oSa Zapytanie w zapytaniu? 27.12.2003, 18:37:46
ins@ne Trudno jest mi sie polapac w tym twoim kodzie... a... 27.12.2003, 18:48:28
oSa CytatNie wiem czy tak masz zbudowana swoja baze w ... 27.12.2003, 18:50:50
damians ok poszło wielkie dzieki 27.12.2003, 19:02:44
oSa Cytatok poszło wielkie dzieki
WTF?? OCB?? Co jes... 27.12.2003, 19:04:14
polaczek Kod$ayt = mysql_query("SELECT * FROM wykon... 27.12.2003, 19:26:43
spenalzo Cytatwykonawcy : id | nazwa | opis
produkcje : id ... 27.12.2003, 22:48:11 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 21:26 |