Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Not Exists
rzseattle
post 29.03.2004, 23:25:07
Post #1





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Przy konstrowaniu jednego zapytania pojawil sie pewien problem. Wyglada ono tak [sql:1:d5758a8059]INSERT INTO groups(cluster, name, level)
SELECT 1 , 'child', RPAD( SUBSTRING(g.level, 1, INSTR(g.level , '0' ) - 1 ) + 1, 7, '0' )
FROM groups as g
WHERE INSTR(g.level , '0' ) - 2 = 0 AND
SUBSTRING( g.level , 2, 1 ) != 9 AND
(NOT EXISTS ( select * from groups as p where p.level = g.level )) AND
g.cluster = 1
ORDER BY LEVEL desc
LIMIT 1[/sql:1:d5758a8059] a problem pojawil sie z NOT EXIST. Nie jset to sprawa tylko tego zapytania poniewaz nawet banal zwraca mi cos takiego:
Cytat
SELECT 1
FROM groups AS p
WHERE NOT
EXISTS (

SELECT *
FROM groups
)
LIMIT 0 , 30

MySQL said:

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXISTS (  
SELECT  *  
FROM groups )


Pomyslalem ze moze EXIST nie jest jeszcze zaimplementowane w mojej wersji servera mysql ale jakos nie moglem sie dokopac do informacji od ktorej wersji to dziala a ja uzywam prawie nowej 4.0.15 . Moze ktos jest zorientowany jak to wyglada?


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
rzseattle
post 30.03.2004, 09:23:24
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Dobra poradzilem sobie. Jesli ogos to zainteresuje to podzapytania sa dostepne dopiero w wersji 4.1. Mozna jednak ominac niektore podzapytania. Pomogl mi znacznie dzial manualu mysql Rewriting_subqueries

a zwlaszcza
Cytat
The queries:

[sql:1:7a107fe155]SELECT * FROM t1 WHERE id NOT IN (SELECT id FROM t2);
SELECT * FROM t1 WHERE NOT EXISTS (SELECT id FROM t2 WHERE t1.id=t2.id);[/sql:1:7a107fe155]

Can be rewritten as:

[sql:1:7a107fe155]SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id
                                      WHERE table2.id IS NULL;[/sql:1:7a107fe155]


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
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: 3.07.2025 - 22:09