Toon posts:

[MySQL] Select multiple Fieldvalues

Pagina: 1
Acties:
  • 352 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedendag,

Ik heb een tabel met met een kolom Fieldname en een bijbehorende kolom Fieldvalue.
eea ziet er zo uit:

Fieldname Fieldvalue
Naam Pietje Puck
Postcode 1234AB
Woonplaats Utrecht.

Ik wil nu een query die de bovenstaande values ophaalt: Pietje Puck, 1234AB, Utrecht.

Ik ben behoorlijk N00b en heb een vrij simpele query gemaakt, die één van deze waardes ophaalt:
SELECT Fieldvalue FROM `tabel` WHERE Fieldname LIKE 'Postcode'

Hoe kan ik nu drie waardes ophalen met één query ?

Alvast erg bedankt !

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 06:10
Is het niet makkelijker om koppeltabellen te gebruiken, dit brengt alleen maar ergenis met zich mee. (Op de PHP-manier of de SQL-manier).

[ Voor 200% gewijzigd door Manuel op 01-03-2011 15:33 ]


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 02:01

MueR

Admin Tweakers Discord

is niet lief

Dat gaat je alleen lukken met subqueries. De echte vraag is waarom je een dergelijk datamodel hebt gekozen. Het gaat nogal tegen het principe van relationele databases in.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je huidige probleem is nou precies de reden waarom geen enkele zichzelf respecterende programmeur zo'n databaseontwerp zal maken tenzij hij écht geen andere keus heeft.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Je doet je naam eer aan met zo'n ontwerp ( :P ), maar je zou de tabel op zichzelf kunnen joinen wanneer de regels die je als kolommen wil selecteren iets gemeen hebben, zoals een ID.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

SELECT Fieldvalue FROM `tabel` WHERE Fieldname LIKE 'Naam' OR Fieldname LIKE 'Postcode' OR Fieldname LIKE 'Woonplaats';

Maar ik neem aan dat je nog eens na gaat denken over je tabel.

👑


Acties:
  • 0 Henk 'm!

  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Ik doe ook nog even men duit in het zakje, er van uit gaand dat dat je tabel is met data:

SQL:
1
SELECT Fieldvalue FROM `tabel`


Maar even serieus: Pas je datamodel aan, en hernoem je tabel ook. Tabel als naam voor een tabel is nogal... obvious!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oké, ik begrijp dat, als ik het gevoel heb nogal onvolledig te zijn geweest, ik dit een understatement mag noemen. Mijn excuses hiervoor. Ik zal hieronder mijn probleem vollediger uit de doeken doen.

Het gaat om een Joomla website, waar de formulier extentie RsForm Pro is geinstalleerd.
De tabel in de (MySQL) database wordt gevuld met de submissions vanaf een formulier.

Ik probeer nu via een andere Extentie, SQL2Excel Pro, de submissies mbv een query in een excel bestand te schrijven.

Info:

Tabelnaam: jos_rsform_submission_values
(Er staan nog een aantal meer regels in, o.a. woonplaats, telefoon e.d.)

SubmissionValueId FormId SubmissionId FieldName FieldValue
60 1 5 Naam Pietje Precies
61 1 5 Adres Weg 123
62 1 5 Postcode 1234 AB

Momenteel heb ik de volgende query :

SELECT SubmissionId AS fldKlantcode,
MAX(IF(FieldName='Naam',FieldValue, NULL)) AS "fldAanvrager naam",
MAX(IF(FieldName='Adres',FieldValue, NULL)) AS "fldAanvrager Adres",
MAX(IF(FieldName='Postcode',FieldValue, NULL)) AS "fldAanvrager Postcode",
FROM jos_RSFORM_SUBMISSION_VALUES
GROUP by SubmissionId

Dit werkt prima, maar ik wil graag de value: fldOmschrijving toevoegen, met daarin de waardes Naam, Adres en Postcode.

Mvg
Mesjogguh

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Die extra informatie maakt het niet ineens wél een goed databaseontwerp. Die tabel is gewoon vragen om problemen. :X

Wat je lijkt te zoeken heet (string) concatenation. Even daarop Googlen lost je vraag op, maar niet je probleem. Die tabel is echt een probleem op deze manier. Een database in een database werkt gewoon niet, zoals je nu merkt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

ajakkes schreef op dinsdag 01 maart 2011 @ 16:40:
SELECT Fieldvalue FROM `tabel` WHERE Fieldname LIKE 'Naam' OR Fieldname LIKE 'Postcode' OR Fieldname LIKE 'Woonplaats';
Pff..

SELECT Fieldvalue FROM tabel WHERE Fieldname IN ('Naam','Postcode','Woonplaats');

Maar, veel succes met het tweede klant in de tabel.
Verwijderd schreef op dinsdag 01 maart 2011 @ 18:29:
Momenteel heb ik de volgende query :

SELECT SubmissionId AS fldKlantcode,
MAX(IF(FieldName='Naam',FieldValue, NULL)) AS "fldAanvrager naam",
MAX(IF(FieldName='Adres',FieldValue, NULL)) AS "fldAanvrager Adres",
MAX(IF(FieldName='Postcode',FieldValue, NULL)) AS "fldAanvrager Postcode",
FROM jos_RSFORM_SUBMISSION_VALUES
GROUP by SubmissionId
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT SubmissionId AS fldKlantcode,
MAX(IF(FieldName='Naam',FieldValue, NULL)) AS "fldAanvrager naam",
MAX(IF(FieldName='Adres',FieldValue, NULL)) AS "fldAanvrager Adres",
MAX(IF(FieldName='Postcode',FieldValue, NULL)) AS "fldAanvrager Postcode",
/* */
CONCAT ('fldAanvrager naam',' ','fldAanvrager Adres',' ','fldAanvrager Postcode') AS fldAanvragerConcat,
/* */
FROM jos_RSFORM_SUBMISSION_VALUES 
GROUP by SubmissionId
INTO OUTFILE '/tmp/export.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
/* heb je csv-output er gratis bij */
NMe schreef op dinsdag 01 maart 2011 @ 18:37:
Die extra informatie maakt het niet ineens wél een goed databaseontwerp. Die tabel is gewoon vragen om problemen. :X
Z'n huidige probleem is gewoon het script wat 'ie gebruikt om gegevens te verzamelen. Wellicht dat het beter kan, maar de logica van het script lijkt het voornaamste defect te zijn. Als het op te lossen is bij de export: prima, maar dit is de situatie waar 'ie mee zit.

I don't like facts. They have a liberal bias.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Burne,

Dank voor je begrip en hulp !

Als ik de query in PHPMyAdmin invoer, krijg ik niet de ingevulde waardes fldAanvrager naam etc. terug, maar
wordt onderstaande netjes achter elkaar gezet.
Dus, waar ik graag Peitje Puck, Weg123, 1234 AB zou willen hebben, staat:
fldAanvrager naam fldAanvrager Adres fldAanvrager Postcode

Mvg Mesjogguh

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op dinsdag 01 maart 2011 @ 19:17:
Als ik de query in PHPMyAdmin invoer, krijg ik niet de ingevulde waardes fldAanvrager naam etc. terug, maar
wordt onderstaande netjes achter elkaar gezet.
...
fldAanvrager naam fldAanvrager Adres fldAanvrager Postcode
Als je nou zelf de zeer minimale moeite genomen had om op te zoeken wat CONCAT() doet had je zelf kunnen bedenken wat er nu gebeurt.

{signature}


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Voutloos schreef op dinsdag 01 maart 2011 @ 19:26:
[...]
Als je nou zelf de zeer minimale moeite genomen had om op te zoeken wat CONCAT() doet had je zelf kunnen bedenken wat er nu gebeurt.
Precies. Letterlijk pseudocode copy/pasten en het dan niet begrijpen als het niet werkt is tot daaraan toen, maar als je dan zelf niet ziet dat je strings aan een functie aan het voeren bent in plaats van veldnamen dan krijg je mij niet overtuigd dat je er meer dan 10 seconden aan besteed hebt. Volgende keer een beetje meer eigen inzet graag. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.