Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dwie tabele, wyświetlanie wyników, które spełniają warunki z obu tabel
vorren
post 1.06.2009, 13:18:03
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2009

Ostrzeżenie: (0%)
-----


select * from profile join profile_extended WHERE `has_photo`='y' and `prowadze__dla_firm_` = '8'

Celem zapytania jest porównanie tabel i wyświetlenie wyników które spełniają kryteria:
w tabeli profile_extended prowadze__dla_firm_='8'
w tabeli profile has_photo='y'

w obu tabelach jest profile_id, które sobie odpowiada

Przy czym najpierw powinien sprawdzić tabelę profile_extended.



select * from profile, profile_extended where profile_id=profile_id and `has_photo`='y' and `prowadze__dla_firm_` = '8'
daj wynik taki:
#1052 - Column 'profile_id' in where clause is ambiguous

Ten post edytował vorren 1.06.2009, 14:17:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
maly_swd
post 1.06.2009, 15:45:05
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM profile p
  2. JOIN profile_extended pe ON p.profile_id=pe.profile_id
  3. WHERE p.has_photo='y' AND pe.prowadze__dla_firm_ = 8


Ten post edytował maly_swd 1.06.2009, 15:45:43


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
vorren
post 2.06.2009, 08:35:51
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2009

Ostrzeżenie: (0%)
-----


Dziękuję, bardzo - działa.
Mam jeszcze tylko jedną prośbę, możesz wytłumaczyć jak młotkowi co zrobiłeś i dlaczego?? Nie będę więcej głowy zawracał, jeśli zrozumiem co użyłem.
Z góry dzięki.
Go to the top of the page
+Quote Post
maly_swd
post 2.06.2009, 09:52:16
Post #4





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


select * from profile p - wybieramy wszystkie rekordy... tabela profile dostaje alisa P (aby pozniej przy odwolywaniu bylo wiadomo o ktora tabele Ci chodzi)

join profile_extended pe on p.profile_id=pe.profile_id - Join - dolacza tabele profile_extended i daje jej alisas PE, ON podaje zaleznosc w laczeniu jakich kolum dotyczy, Ty chciales łączyc po profile_id, aby system wiedzial o jakie kolumny z jakich tabel Ci chodzi podajesz alias.nazwa - czyli p.profile_id (profile_id z tabeli profile) oraz pe.profile_id (profile_id z tabeli extended)


WHERE p.has_photo='y' and pe.prowadze__dla_firm_ = 8 - a tu dodatkowe warunki jakie maja byc spelnione

mam nadzieje ze dobrze to opisalem


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
erix
post 2.06.2009, 09:54:54
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A kurs SQL przeczytany? snitch.gif

Bo chyba nie bardzo, nie? Po join masz wskazanie, które kolumny zawierają wartości wzajemnie wiążące rekordy.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
vorren
post 2.06.2009, 14:01:30
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2009

Ostrzeżenie: (0%)
-----


erix, nie - nie przeczytany. Chyba jestem na to za stary. Nie umiem czytać tych książek. Chyba po prostu brakuje mi wśród znajomych osób, z którymi mógłbym o tym porozmawiać. Jakoś w praktyce, pytając żywego człowieka (choćby przez forum) szybciej się uczę i czasem nawet zrozumiem. Wybacz smile.gif
maly_swd - dziękuję pięknie - działa...

Ten post edytował vorren 2.06.2009, 14:03:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:29