Avatar billede storm-bb Nybegynder
04. februar 2004 - 21:57 Der er 14 kommentarer

Problemmer med udtræk

Jeg har en <a href="visiondesigns.dk/db.gif">database</a>

Jeg vil gerne udtrække alle sektioner der ikke eksisterer under den angive ny.

Virker hvis kun er section er valgt:
SELECT Section.SectionID, Section.SectionName FROM NSR
                                    LEFT JOIN Section ON NSR.SectionID!=Section.SectionID
                                    WHERE NSR.NewsID='$row[NewsID]'

men ikke hvis der er valgt flere sektioner så går den amok
Avatar billede eagleeye Praktikant
04. februar 2004 - 22:18 #1
Prøv at skrive det sådan her:

SELECT Section.SectionID, Section.SectionName FROM Section LEFT JOIN NSR ON Section.SectionID = NSR.SectionID WHERE NSR.NewsID<>'$row[NewsID]'


Denne NSR.SectionID!=Section.SectionID vil JOINen alle section for hvor NSR
Avatar billede storm-bb Nybegynder
04. februar 2004 - 22:33 #2
Virker ik den udtrække bare alle sektioner flere gangen
Avatar billede storm-bb Nybegynder
04. februar 2004 - 22:34 #3
Jeg vil kun have de sektioner som nyheden ikke er tilføjet til i forvejen
Avatar billede eagleeye Praktikant
04. februar 2004 - 22:53 #4
Kan den mysql du har bruge IN ?:


SELECT Section.SectionID, Section.SectionName FROM Section
WHERE Section.SectionID NOT IN (SELECT  Section.SectionID FROM  Section LEFT JOIN NSR ON Section.SectionID = NSR.SectionID WHERE NSR.NewsID='$row[NewsID]');
Avatar billede storm-bb Nybegynder
04. februar 2004 - 22:57 #5
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 'SELECT Section.SectionID FROM Section LEFT JOIN NSR

ser ikke sådan ud men jeg kan da lige opdatere den
Avatar billede eagleeye Praktikant
04. februar 2004 - 22:59 #6
Eller prøv at skrive <> ANY i stedet for not in

SELECT Section.SectionID, Section.SectionName FROM Section
WHERE Section.SectionID <> ANY (SELECT  Section.SectionID FROM  Section LEFT JOIN NSR ON Section.SectionID = NSR.SectionID WHERE NSR.NewsID='$row[NewsID]');
Avatar billede storm-bb Nybegynder
04. februar 2004 - 23:00 #7
det er det samme 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 '(SELECT Section.SectionID FROM Section LEFT JOIN NSR ON Secti
Avatar billede eagleeye Praktikant
04. februar 2004 - 23:04 #8
Eller skrevet lidt om:

SELECT Section.SectionID, Section.SectionName FROM Section WHERE Section.SectionID <> ANY (SELECT SectionID FROM NSR WHERE NSR.NewsID=1);
Avatar billede storm-bb Nybegynder
04. februar 2004 - 23:06 #9
stadig ik 
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 '(SELECT SectionID FROM NSR WHERE NSR.NewsID=1)' at line 1
Avatar billede eagleeye Praktikant
04. februar 2004 - 23:10 #10
Uden any?? hvilken version har du?

SELECT Section.SectionID, Section.SectionName FROM Section WHERE Section.SectionID <> (SELECT SectionID FROM NSR WHERE NSR.NewsID='$row[NewsID]');

umiddelbart er det først med i version 4.1 som jeg læser denne side:
http://www.mysql.com/doc/en/Subqueries.html
Avatar billede storm-bb Nybegynder
04. februar 2004 - 23:13 #11
Version: 4.0.14

stadig ik
Avatar billede storm-bb Nybegynder
04. februar 2004 - 23:14 #12
den kan ikke finde ud af det Select ind i parentesen
Avatar billede eagleeye Praktikant
04. februar 2004 - 23:15 #13
Så lige noget man skulle kunne skrive det efter denne syntax i ældre udgaver:

SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id
                                      WHERE table2.id IS NULL
Avatar billede storm-bb Nybegynder
04. februar 2004 - 23:18 #14
virker stadig ik
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester