ďťż
 
Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?= ďťż
 
Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?=



Broda - 09-02-2007 00:04
Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?=
  Witam,

napisałem forum i wyciągam z niego 5 ostatnich wiadomości, które
przeznaczone sa dla wszystkich.
Zapytanie wygląda następująco:

SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
WHERE forum_posts.id_topic='0'
AND forum_posts.id_section<>forum_sections_grupy.id_se ction
ORDER BY forum_posts.date DESC LIMIT 5

gdzie forum_posts to tabela z wiadomościami a forum_sections_grupy to
tabela łącząca sekcję forum (id_section) i grupy uprawnionych
użytkowników (id_grupy).

Chodzi o to, żeby w ostatnich wiadomościach nie było takich, które
należą do sekcji zawierających jakiś wpis w tabeli forum_sections_grupy.

Niestety to nie działa, jesli tabela forum_sections_grupy jest pusta.
Nie wyświetla wówczas żadnych wiadomości.

Nawet takie zapytanie nic wówczas nie zwraca:
SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
WHERE forum_posts.id_topic='0'

Jeśli dodam jakikolwiek rekord do tabeli forum_sections_grupy wszystko
działa ok.

Jak powinienem zmodyfikować zapytanie żeby było ok?
Z góry bardzo dziękuję.

--
broda





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 10-02-2007 00:02

  Broda wrote:
> Witam,
>
> napisałem forum i wyciągam z niego 5 ostatnich wiadomości, które
> przeznaczone sa dla wszystkich.
> Zapytanie wygląda następująco:
>
> SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
> WHERE forum_posts.id_topic='0'
> AND forum_posts.id_section<>forum_sections_grupy.id_se ction
> ORDER BY forum_posts.date DESC LIMIT 5
>
> gdzie forum_posts to tabela z wiadomościami a forum_sections_grupy to
> tabela łącząca sekcję forum (id_section) i grupy uprawnionych
> użytkowników (id_grupy).
>
> Chodzi o to, żeby w ostatnich wiadomościach nie było takich, które
> należą do sekcji zawierających jakiś wpis w tabeli forum_sections_grupy.
>
> Niestety to nie działa, jesli tabela forum_sections_grupy jest pusta.
> Nie wyświetla wówczas żadnych wiadomości.
>
> Nawet takie zapytanie nic wówczas nie zwraca:
> SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
> WHERE forum_posts.id_topic='0'
>
> Jeśli dodam jakikolwiek rekord do tabeli forum_sections_grupy wszystko
> działa ok.

A próbowałeś dwa rekordy? ;)

--
P.M.




=?ISO-8859-2?Q?Cezary_Gr=B1dys?= - 10-02-2007 00:02

  Użytkownik Broda napisał:
> Witam,
>
> napisałem forum i wyciągam z niego 5 ostatnich wiadomości, które
> przeznaczone sa dla wszystkich.
> Zapytanie wygląda następująco:
>
> SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
> WHERE forum_posts.id_topic='0'
> AND forum_posts.id_section<>forum_sections_grupy.id_se ction
> ORDER BY forum_posts.date DESC LIMIT 5
>
> gdzie forum_posts to tabela z wiadomościami a forum_sections_grupy to
> tabela łącząca sekcję forum (id_section) i grupy uprawnionych
> użytkowników (id_grupy).
>
> Chodzi o to, żeby w ostatnich wiadomościach nie było takich, które
> należą do sekcji zawierających jakiś wpis w tabeli forum_sections_grupy.
>
> Niestety to nie działa, jesli tabela forum_sections_grupy jest pusta.
> Nie wyświetla wówczas żadnych wiadomości.
>
> Nawet takie zapytanie nic wówczas nie zwraca:
> SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
> WHERE forum_posts.id_topic='0'
>
> Jeśli dodam jakikolwiek rekord do tabeli forum_sections_grupy wszystko
> działa ok.
>
> Jak powinienem zmodyfikować zapytanie żeby było ok?
> Z góry bardzo dziękuję.
>

Nie wiem czy dobrze zrozumiałem, bo trochę rano :)
Ale chyba chodzi o coś w tym stylu:

SELECT forum_posts.* FROM forum_posts
WHERE forum_posts.id_topic='0'
AND forum_posts.id_section not in
(select id_section from forum_sections_grupy )
ORDER BY forum_posts.date DESC LIMIT 5

--
Cezary Grądys
czarekgr@wa.onet.pl




Broda - 10-02-2007 00:02

  Paweł Matejski napisał(a):

>> Niestety to nie działa, jesli tabela forum_sections_grupy jest pusta.
>> Nie wyświetla wówczas żadnych wiadomości.
>>
>> Nawet takie zapytanie nic wówczas nie zwraca:
>> SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
>> WHERE forum_posts.id_topic='0'
>>
>> Jeśli dodam jakikolwiek rekord do tabeli forum_sections_grupy wszystko
>> działa ok.
>
> A próbowałeś dwa rekordy? ;)

Ożesz!

Jak wobec tego stworzyć zapytanie, które wyciągnie mi rekordy z tabeli
forum_posts mające taką wartość id_sections, która ani razu nie
występuje w tabeli forum_sections_grupy?

--
broda





Broda - 10-02-2007 00:02

  Cezary Grądys napisał(a):

> Nie wiem czy dobrze zrozumiałem, bo trochę rano :)
> Ale chyba chodzi o coś w tym stylu:
>
> SELECT forum_posts.* FROM forum_posts
> WHERE forum_posts.id_topic='0'
> AND forum_posts.id_section not in
> (select id_section from forum_sections_grupy )
> ORDER BY forum_posts.date DESC LIMIT 5

No cudnie!

Ja już za długo nad tym myślałem i nie mogłem sie wyrwać z pewnych
schematów myślowych. Stworzyłem takiego potwora a i tak nie działało
najlepiej :)

SELECT forum_posts . *
FROM forum_posts, forum_sections_grupy
WHERE forum_posts.id_topic = '0'
AND forum_posts.id_section NOT
IN (
SELECT forum_sections_grupy.id_section
FROM forum_sections_grupy
GROUP BY forum_sections_grupy.id_section
)
GROUP BY forum_posts.id
ORDER BY forum_posts.date DESC
LIMIT 5

Po moich mękach twórczych twoje zapytanie wydaje mi się piekne nawet w
kategoriach estetycznych ;)
Działa jak złoto.
Bardzo dziękuję.

--
broda




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 10-02-2007 00:02

  Broda wrote:
> Paweł Matejski napisał(a):
>
>>> Niestety to nie działa, jesli tabela forum_sections_grupy jest pusta.
>>> Nie wyświetla wówczas żadnych wiadomości.
>>>
>>> Nawet takie zapytanie nic wówczas nie zwraca:
>>> SELECT forum_posts.* FROM forum_posts, forum_sections_grupy
>>> WHERE forum_posts.id_topic='0'
>>>
>>> Jeśli dodam jakikolwiek rekord do tabeli forum_sections_grupy wszystko
>>> działa ok.
>>
>> A próbowałeś dwa rekordy? ;)
>
> Ożesz!
>
> Jak wobec tego stworzyć zapytanie, które wyciągnie mi rekordy z tabeli
> forum_posts mające taką wartość id_sections, która ani razu nie
> występuje w tabeli forum_sections_grupy?

Standarcik:

SELECT forum_posts.*
FROM forum_posts LEFT JOIN forum_sections_grupy
ON (forum_posts.id_section<>forum_sections_grupy.id_s ection)
WHERE forum_posts.id_topic='0'
AND forum_sections_grupy.id_section is null -- dowolna kolumna not null,

-- najlepiej pk
ORDER BY forum_posts.date DESC LIMIT 5

--
P.M.




=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 10-02-2007 00:02
=?ISO-8859-2?Q?Re:_Zapytanie_SQL_z_pust=B1_tabel=B1?=
  Dnia Fri, 09 Feb 2007 06:56:16 +0100, Broda <rrudzinski@interia.pl> wklepał(-a):

>Po moich mękach twórczych twoje zapytanie wydaje mi się piekne nawet w
>kategoriach estetycznych ;)

Piękne to jest zapytanie, które ma kilkaset wierszy, działa dobrze nawet na
błędnych danych i jak patrzysz na nie po 3 miesiącach to nadal rozumiesz jak
działa. ;)

MSPANC
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf [oracle] - Oracle SQL Developer - co to jest SID? MS Sql Server 2000 i Server 2003 [MS SQL + kontakty outlook]CZy kontakty moge być zewnętrzne? [oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anette.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com