[MYSQL] select where id = x and not in andere tabel plz :(

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wordt gek. Meer dan al het geval was.

MYSQL guru's, help me out :(

Tabel1:
| ID | POLL_VRAAG |

Tabel2:
| ID | USER_ID | POLL_VRAAG_ID | ANTWOORD |

Poll-questions staan in Tabel 1
User geeft antwoord op een poll-question.
Antwoord wordt opgeslagen in tabel2.

Simpel zat. Naar wij dachten.

Nu wil ik alle onbeantwoorde vragen van user_x opvragen.

Dus: SELECT table1.id WHERE ( ?help? USER_ID = user_x && NOT EXISTS IN table2 ?help? )

Leek mij niet moeilijk, valt tegen. Help :(

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Of je moet compleet wat anders bedoelen, maar je hebt zelf NOT IN al in je titel staan
SQL:
1
2
3
4
5
SELECT table1.id
FROM table1
WHERE table1.id NOT IN (    SELECT poll_vraag_id
                            FROM table2
                            WHERE user_id = ?)

[ Voor 37% gewijzigd door Woy op 26-03-2010 16:54 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Of een efficientere variant (iig binnen MySQL):
SQL:
1
2
3
4
SELECT table1.id 
FROM table1
LEFT JOIN table2 ON table2.POLL_VRAAG_ID = table1.ID AND table2.USER_ID = ?
WHERE table2.ID IS NULL

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
... :)

Super snel! En het werkt. Gaat van pas komen, deze syntax.

_/-\o_

Acties:
  • 0 Henk 'm!

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

Wolfboy schreef op vrijdag 26 maart 2010 @ 16:58:
Of een efficientere variant (iig binnen MySQL):
SQL:
1
2
3
4
SELECT table1.id 
FROM table1
LEFT JOIN table2 ON table2.POLL_VRAAG_ID = table1.ID AND table2.USER_ID = ?
WHERE table2.ID IS NULL
Ik vind de + notatie overzichtelijker
SQL:
1
2
3
4
5
SELECT table1.id
FROM table1, table2
WHERE table1.id = table2.poll_vraag_id(+)
  AND table2.user_id(+) = ?
  AND table2.id IS NULL

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mbsaerens schreef op vrijdag 26 maart 2010 @ 17:07:
[...]

Ik vind de + notatie overzichtelijker
SQL:
1
2
3
4
5
SELECT table1.id
FROM table1, table2
WHERE table1.id = table2.poll_vraag_id(+)
  AND table2.user_id(+) = ?
  AND table2.id IS NULL
Wat doet de plus?

Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Maar ik mag toch hopen dat de query optimizer van MySQL dat uiteindelijk hetzelfde uitvoert, toch?

Acties:
  • 0 Henk 'm!

  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

PolarBear schreef op vrijdag 26 maart 2010 @ 18:53:
[...]Maar ik mag toch hopen dat de query optimizer van MySQL dat uiteindelijk hetzelfde uitvoert, toch?
Denk het niet, maar ik zou zeggen, probeer het, doe een explain op de query

If you choose to criticise you choose your enemies


Acties:
  • 0 Henk 'm!

  • cariolive23
  • Registratie: Januari 2007
  • Laatst online: 18-10-2024
En een bruikbaar plaatje:
Afbeeldingslocatie: http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg

Acties:
  • 0 Henk 'm!

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Wrom niet met except ;)

Steun Elkaar, Kopieer Nederlands Waar!


Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Emmeau schreef op vrijdag 26 maart 2010 @ 18:55:
[...]

Denk het niet, maar ik zou zeggen, probeer het, doe een explain op de query
Oh wacht hij wilde de onbeantwoorde vragen, op de een of andere manier overheen gelezen. Op de een of andere manier zat ik met inner joins in m'n hoofd. Dan is het wel hetzelfde.

[ Voor 13% gewijzigd door PolarBear op 26-03-2010 21:22 ]

Pagina: 1