Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> połączenie zapytań
Sh4dow
post 22.04.2004, 17:22:13
Post #1





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


Nie moge poradzic sobie ze zlożeniem 2 zapytan razem. WIem ze to jest mozliwe, ale nie umiem poradzic sobie z tym
Mam tabele
Access
user_id | page_id | serwis

page
site_id | mod | parametr| serwis

teraz potrzebuje zapytanie, które pobiera z tabeli 'page' wszystkie kolumny poza serwis takim zapytaniem
[sql:1:1d16d2b5c5]SELECT site_id, mod, parametr FROM page WHERE serwis = 'x'[/sql:1:1d16d2b5c5]
i chce zeby dołączyc do tego zapytanie ktore bedzie sprawdzac czy istanieje wpis spelniajacy takie warunki
[sql:1:1d16d2b5c5]SELECT IF(count(access.page_id) > 0, 1, 0) AS sccess FROM access, page WHERE access.page_id = page.site_id AND serwis = 'x' AND user_id = 'z'[/sql:1:1d16d2b5c5]
opis drugiej czesci:
Jesli istanieje wpis w tabeli access spelniajacy warunki, to zapytanie oddaje 1, jesli nie istnieje oddaje 0. Chcialbym to polaczyc razem ze pierwszym zapytaniem ale poprostu nie wiem jak.
Za pomoc z gory bardzo dziekuje


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
kwiateek
post 22.04.2004, 17:28:28
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 13.01.2003
Skąd: 3rd ball of mud behind a big ball of burning gas

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


Tak na szybko (ale nie gwarantuje, że będzie działać):
[sql:1:bc65ac1c6a]SELECT page.site_id, page.mod, page.parametr, IF(count(access.page_id) > 0, 1, 0) AS sccess
FROM page, access
WHERE page.serwis = 'x' AND access.page_id = page.site_id AND page.serwis = 'x' AND access.user_id = 'z'
GROUP BY site_id[/sql:1:bc65ac1c6a]
Pozdrawiam.


--------------------
It's Time to Join the PLD Linux Generation!
<? while (!$success) { $try++; } ?>
Go to the top of the page
+Quote Post
Sh4dow
post 22.04.2004, 18:12:29
Post #3





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


Działa super, ale niestety nie w pełni tak jak bym oczekiwał.
Dostaje tylko te rekodry gdzie access jest rowny 1, a natomiast nie podaje reszty. Wydaje mi sie ze trzeba by zastosowac tam jakis JOIN, ale nie znam tego.


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
BzikOS
post 23.04.2004, 00:16:17
Post #4





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


[sql:1:7db56e8258]SELECT p.site_id AS site_id,
p.mod AS mod,
p.parametr AS parametr,
IF( count(distinct a.page_id) > 0, 1, 0) AS access
FROM page p
LEFT JOIN access a ON ( a.page_id = p.site_id AND p.user_id = 'z' )
WHERE p.serwis = 'x'
GROUP BY p.site_id[/sql:1:7db56e8258]

Pisane z palca :/ No i nie wiem z której tabeli pochodzi user_id (w podanych przez Ciebie tabelach nie występuje).
Go to the top of the page
+Quote Post
Sh4dow
post 23.04.2004, 10:15:31
Post #5





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


user_id jest z tabeli access po poprawdze dziala super biggrin.gif


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
BzikOS
post 23.04.2004, 12:14:38
Post #6





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Cytat
user_id jest z tabeli access

Faktycznie, nie zauwazylem tongue.gif
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: 19.07.2025 - 16:48