in 1 tabel komt 2 keer de usersID voor

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michiel v

michiel v

13/02/2012 16:06:52
Quote Anchor link
in 1 tabel komt 2 keer de usersID voor, nu wordt deze 2 keer weergegeven. Ik wil alleen de laatste weergeven met de nieuwste datum of het nieuwst followID. Wat voor query kan ik maken???

Zie mij tabellen:

followID transactie_id usersID transactie_amount pay_date
1 1423 140 91 2012-02-13 08:16:44
2 1424 140 150 2012-02-13 09:16:44
 
PHP hulp

PHP hulp

04/11/2024 23:05:10
 
Jeroen VD

Jeroen VD

13/02/2012 16:08:25
Quote Anchor link
hoezo een id (unieke waarde) twee keer voor laten komen? maar dat terzijde.

hint: zoek is op DISTINCT en MAX
 
Elwin - Fratsloos

Elwin - Fratsloos

13/02/2012 16:38:37
Quote Anchor link
Jeroen vd op 13/02/2012 16:08:25:
hoezo een id (unieke waarde) twee keer voor laten komen? maar dat terzijde.

Als ik zo naar de tabelopbouw kijk is het een vreemde sleutel en dan hoeft het geen unieke waarde te zijn.

De TS zou gebruik moeten maken van ORDER BY op basis van 'pay_date'.

Uit de vraagstelling wordt het niet echt duidelijk of de TS de rij wilt zien met de laatste datum/tijd, of de rij wilt zien met de laatste datum/tijd van een gebruiker.

Edit:
Zoiets zou de query kunnen zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    *
FROM
    tabel
WHERE
    usersID = 140
ORDER BY
    pay_date DESC
LIMIT
    0,1
Gewijzigd op 13/02/2012 16:41:19 door Elwin - Fratsloos
 
Jeroen VD

Jeroen VD

13/02/2012 16:45:04
Quote Anchor link
ik vond het een beetje een vreemde naamgeving, een id is in mijn ogen altijd uniek.

volgens mij wilde de TS ervoor zorgen dat niet alle records met een bepaalde id voorkwam, maar er maar eentje wilde selecteren
 
Michiel v

michiel v

13/02/2012 16:52:14
Quote Anchor link
Zie onderstaand de query. Hoe moet ik hier dan in verwerken?

SELECT



users.id ,
users.user_level ,
users.address ,
users.zipcode ,
users.city ,
users.tel ,
users.fax ,
users.country ,
users.website ,
users.kvk ,
users.btw ,
users.sector ,

admin_muteren.ID ,
admin_muteren.daysFORFREE ,
admin_muteren.preSALES ,
admin_muteren.accountONHOLD ,
admin_muteren.payACCOUNT_1 ,
admin_muteren.payACCOUNT_2 ,
admin_muteren.payACCOUNT_3 ,
admin_muteren.payACCOUNT_4 ,
admin_muteren.payACCOUNT_5 ,
admin_muteren.freeSEARCHACCOUNT ,
admin_muteren.paySEARCHACCOUNT_1 ,

transactions.pay_date ,
transactions.usersID ,
MAX (transactions.followID)


FROM users JOIN transactions

INNER JOIN admin_muteren

ON users.id = transactions.usersID

WHERE users.id='$_SESSION[user_id]'
 
Erwin H

Erwin H

13/02/2012 17:18:26
Quote Anchor link
Hier ga je een probleem mee krijgen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
MAX (transactions.followID)

Want ik neem aan dat je wil dat je het record wat hierbij hoort wilt krijgen, maar dat zal niet zo zijn. MySQL zal bij elk record het maximum id meegeven, of uberhaupt maar een record, waarbij de waarde in de MAX kolom niet noodzakelijkerwijs dat id zal zijn. Run maar eens de volgende query en kijk of het klopt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT followID, MAX(followID)
FROM transactions
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

13/02/2012 17:38:14
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT
    users.username
    transactions.transactiondate
FROM
    users
JOIN
  transactions
    ON
    users.id = transactions.usersid
WHERE
    users.id = 'someid'
AND
    transactions.folowID =
    (SELECT MAX(folowID) FROM transactions
    WHERE
        userid='someid'
    GROUP BY
        userid);

edit:
Nog iets eenvoudiger
Gewijzigd op 13/02/2012 17:46:17 door Ger van Steenderen
 
Erwin H

Erwin H

13/02/2012 17:43:10
Quote Anchor link
@Ger
Ik denk dat er nog iets nodig is in het laatste deel van je WHERE clause. Zoals het er nu staat kunnen er meerdere records geselecteerd worden in de subquery.
Edit: al aangepast
Gewijzigd op 13/02/2012 17:43:26 door Erwin H
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

13/02/2012 17:50:28
Quote Anchor link
En nogmaals aangepast.

@Michiel:
Zoals jij de admin_mutate tabel joined kan nooit goed gaan (als je al geen error krijgt)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.