Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] LEFT JOIN
adi456
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


Witam, pomoże ktoś ogarnąć zapytanie bo kombinuje i coś mi nie wychodzi

chce osiągnąć coś takiego:
  1. SELECT * FROM zamowienia_towar
  2. LEFT JOIN zamowienia_towar_sklepy ON zamowienia_towar.id=zamowienia_towar_sklepy.id_zt AND (zamowienia_towar_sklepy.sklep_id='16' or zamowienia_towar_sklepy.sklep_id='17')
  3. WHERE zamowienia_towar.dostawca LIKE '%$dostawca%'
  4. GROUP BY zamowienia_towar_sklepy.id_zt
  5. HAVING COUNT(*) != '2'
  6.  


czyli wyciągnąć towar który nie ma przypisanego 2 x "id_zt" ale coś mi nie wychodzi, czy to zapytanie jest poprawne?

Ten post edytował adi456 18.10.2014, 10:34:13
Go to the top of the page
+Quote Post
Forti
post
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Jakiś błąd dostajesz konkretny?


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
adi456
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


nie ma błędu, poprostu nie dostaje wyniku

dodam jeszcze że odwrotność tzn
  1. SELECT * FROM zamowienia_towar
  2. LEFT JOIN zamowienia_towar_sklepy ON zamowienia_towar.id=zamowienia_towar_sklepy.id_zt AND (zamowienia_towar_sklepy.sklep_id='16' or zamowienia_towar_sklepy.sklep_id='17')
  3. WHERE zamowienia_towar.dostawca LIKE '%$dostawca%'
  4. GROUP BY zamowienia_towar_sklepy.id_zt
  5. HAVING COUNT(*) = '2'


wyświetla 819 z 831 czyli pierwszy przykład powinien wywalić 12 rekordów

już wyświetla się te 12 rekordów
źle grupowałem zamiast "GROUP BY zamowienia_towar_sklepy.id_zt" ma być "GROUP BY zamowienia_towar.id"

tyle że jakby nie działa to "AND (zamowienia_towar_sklepy.sklep_id='16' or zamowienia_towar_sklepy.sklep_id='17')" ponieważ gdy do zapytania dodam "count(zamowienia_towar_sklepy.id_zt) as ile" to ile powinno zawierać 0 lub 1 a zwiera też więklsze liczby pomimo tego że 1 sklep_id posiada tylko 1 id_zt


okazało się że błąd jest w innym miejscu i 1 sklep_id posiada może posiadać więcej niż 1 id_zt tak więc problem rozwiązany dziękuje za zainteresowanie.

Ten post edytował adi456 18.10.2014, 22:40:34
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 Aktualny czas: 22.08.2025 - 07:47