Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Rozbudowane zapytanie
Forum PHP.pl > Forum > Przedszkole
SinusConst
Witam,

Mam dwie tabele, które prezentują się następująco:

`sys_klik`
`id` a_i INT PRIM_K
`id_user` INT
`id_strony` INT
{InnoDB}

`sys_strony`
`id` a_i INT PRIM_K
`adres` VAR(100)
{InnoDB}

I teraz układam zapytanie, które ma wyciągnąć adres strony z tabeli `sys_strony`, której nie ma w tabeli `sys_klik`

  1. SELECT sys_strony.* FROM sys_strony, sys_klik WHERE sys_klik.id_strony != sys_strony.id AND sys_klik.id_user = 1


W PHPie prezentuje się to następująco

  1. $strony = mysql_query("SELECT sys_strony.* FROM sys_strony, sys_klik WHERE sys_klik.id_strony != sys_strony.id and sys_klik.id_user = 1");
  2. $strony_ile = mysql_num_rows($strony);
  3. if($strony_ile != 0){
  4. $strony_row = mysql_fetch_assoc($strony);
  5. ....dalsza czesc kodu....
  6. }


Mój problem polega na tym, że skrypt działa tak, jakby był bez " sys_klik.id_strony != sys_strony.id" i pobiera dane(adres www) normalnie
SinusConst
Kombinowałem tez w taki sposób

  1. SELECT DISTINCT * FROM sys_strony WHERE NOT EXISTS(SELECT * FROM sys_klik WHERE sys_strony.id = sys_klik.id_user)


Rezultaty podobne
bzeebzee
  1. SELECT A.* FROM sys_strony A LEFT JOIN sys_klik B ON A.id = B.id_strony WHERE B.id_strony = '';


może to zadziała, sprawdź
SinusConst
Dałem owe zapytanie, sprawdzałem różne warianty i za każdym razem zwraca mi, że brak wyników.
SinusConst
Prawidłowy kod:

  1. SELECT DISTINCT * FROM sys_strony WHERE NOT EXISTS(SELECT * FROM sys_klik WHERE sys_strony.id = sys_klik.id_strony)


Nie zauważyłem, że porównywałem id usera z id strony .......
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.