Toon posts:

Row value, vergelijken met column value

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goejendag,

Situatie:
RSForm met registration plugin geinstalleerd: Gebruikers kunnen zich registreren met een uitgebreid

formulier.
De gegevens die in dit formulier worden ingevuld bij name, username, password en email worden in jos_users geplaatst.
De overige gegevens, inclusief "name" worden in jos_rsform_submission_table gezet.

Op het moment dat een user zich registreerd, krijgt het een confirmation email. Hij klikt hier op en is nu
officieel een gebruiker van de website en kan nu inloggen met gebruikersnaam en wachtwoord.

Gebruikers die niet op de confirmation link hebben geklikt, krijgen in jos_users.block de waarde 1 te staan.
Gebruikers die wèl hebben geklikt, krijgen de waarde 0.

De jos_rsform_submission_values tabel:

SubmissionValueID | FormID |SubmissionID | Fieldname | Fieldvalue
.............300...........|.....2.....|.........33.........|...Name....| John Doe


De jos_users tabel:

id |..name.. | username |...... email ...... | block | gid
77 |John Doe | ..John.. | testATtest.com |... 1... | 18
78 |Jane Doe | ..Jane.. | ...tryATtry.net...|... 0.... | 18


Ik heb nu een query die gebruikersgegevens uit jos_rsform_submission_values haalt. (Staat hieronder)

Wat ik eigenlijk wil is deze query uitbreiden zodat het eerst checked of een gebruiker in jos_users.block een

waarde van 0 heeft en alléén de gegevens van deze gebruikers doorgeeft. Ik weet alleen niet of dit mogelijk

is...

Zo ziet mijn query er uit:

===============================================

SELECT A.FormId
, B.SubmissionId
, B.DateSubmitted
, ( SELECT FieldValue
FROM jos_RSFORM_SUBMISSION_VALUES
WHERE FieldName = 'Name'
AND SubmissionId = B.SubmissionId ) as Naam

FROM jos_RSFORM_FORMS A

INNER
JOIN jos_RSFORM_SUBMISSIONS B
ON B.FormId = A.FormId

INNER
JOIN jos_RSFORM_SUBMISSION_VALUES D
ON D.SubmissionId = B.SubmissionId
AND D.FieldName = 'Vrijwilliger_ID'
AND D.FieldValue = '11'

WHERE A.FormId = 2

=============================================

Ik hoop dat jullie me hiermee kunnen helpen !
Alvast bedankt,
Mesjoggah

Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 01:40

Reptile209

- gers -

Misschien denk ik veel te makkelijk, maar wat is er mis met een WHERE Block = 0?

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedendag Reptile,

Dank voor je reactie !
Voor jullie, met een gedegen MySql achtergrond zijn dit waarschijnlijk vragen waarvan je een lichte zucht niet kunt onderdrukken, maar ik zit spreekwoordelijk nog in de MySql maxi-cosi en vind dit best lastig ;-)

Hoe krijg is mijn query zo ver dat het de jos_users tabel meeneemt in de quest naar de gebruikers die een .blok "0" hebben ?

Groet,
Mesjoggah

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Wat je zoekt is een join

(p.s. met betrekking tot je onderschrift, lees even de faq.)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • o_f_course
  • Registratie: Maart 2002
  • Laatst online: 20-09 17:05

o_f_course

Och...

Verwijderd schreef op woensdag 24 augustus 2011 @ 10:55:
Hoe krijg is mijn query zo ver dat het de jos_users tabel meeneemt in de quest naar de gebruikers die een .blok "0" hebben ?
Door ook hier een INNER JOIN voor toe te voegen, zoals je dat ook voor andere tabellen al in de query hebt staan.

Heb je deze query zelf gebouwd?
Merk op, beetje off topic:
- Het vette stuk kun je ook door een join erin bouwen. In SQLServer geeft dat een hogere performance.
- Geef je aliassen voor tabellen logische namen. A, B, C etc is niet echt handig.
Verwijderd schreef op woensdag 24 augustus 2011 @ 09:19:

===============================================

SELECT A.FormId
, B.SubmissionId
, B.DateSubmitted
, ( SELECT FieldValue
FROM jos_RSFORM_SUBMISSION_VALUES
WHERE FieldName = 'Name'
AND SubmissionId = B.SubmissionId
) as Naam

FROM jos_RSFORM_FORMS A

INNER
JOIN jos_RSFORM_SUBMISSIONS B
ON B.FormId = A.FormId

INNER
JOIN jos_RSFORM_SUBMISSION_VALUES D
ON D.SubmissionId = B.SubmissionId
AND D.FieldName = 'Vrijwilliger_ID'
AND D.FieldValue = '11'

WHERE A.FormId = 2

[ Voor 4% gewijzigd door o_f_course op 24-08-2011 11:05 ]

facts don't care about your feelings


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedendag,

Ik heb deze basis voor deze query op internet gevonden, zelf wat uitgezocht en aangepast, met hulp van een vriend nog verder aangepast.

Ik begreep dat je een INNER JOIN alleen kunt uitvoeren op iedentieke columns uit verschillende tabellen ?
Kan je het dan wel gebruiken op mijn vraag ?
Of heb ik het helemaal niet goed begrepen (wat héél goed zou kunnen) ? ;-)

Acties:
  • 0 Henk 'm!

  • coldasice
  • Registratie: September 2000
  • Laatst online: 22-09 17:23
is het niet verstandig om eerst eens een paar T-SQL tutorials door te akkeren. Daarmee stijgt je eigen kennis, verder is het handig om al je queries in een management omgeving te testen zodat je meteen een tabel terugkrijgt, ik ben zelf niet bekend met MySQL maar dat zit daar ook vast wel op.

Dan kunnen je zelf stoeien en meteen het resultaat terug zien.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Daar heb je helemaal gelijk in en sterker nog, ik ben daar aan begonnen !
Heb het boek Simply SQL van Sitepoint gekocht, en een paar MySql CBT nuggets gedownload ;-)

Ik heb al een poosje naar mijn probleempje lopen koekeloeren, maar het lampje wil nog niet helemaal branden..
Maar, bedankt voor je advies !

Mesjoggah.

  • o_f_course
  • Registratie: Maart 2002
  • Laatst online: 20-09 17:05

o_f_course

Och...

Er zijn online ook plaatsen waar je een cursus en online test query's kunt uitvoeren: www.SQLCourse.com en www.SQLCourse2.com.
Allemaal erg kort wat er verteld wordt, dat wel.
Over joins wordt vertelt op http://www.sqlcourse2.com/joins.html

Anders: http://www.w3schools.com/sql/default.asp

facts don't care about your feelings


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

En vergeet Programming FAQ - SQL niet O-) Die PRG FAQ is er niet voor niets ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedendag,

Bedankt voor alle tips, ik heb de query klaar en ben een stuk wijzer geworden !

Mesjoggah.

Acties:
  • 0 Henk 'm!

  • Azer
  • Registratie: Oktober 2003
  • Niet online
Nog een tip: De naam (bijv: John Doe), wordt op dit moment in twee verschillende tabellen opgeslagen. Ik raad je aan om je in te lezen op het gebied van database normalisatie, want dubbele data in een database is niet aan te raden. Je hoeft de naam maar in één van de tabellen op te slaan.

Anders zou het bijvoorbeeld een probleem kunnen worden als je de naam wilt veranderen en deze slechts in één van de tabellen veranderd. Welke naam is dan de echte?
Pagina: 1