Toon posts:

[SQL] Select probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil iets uit een andere tabel maar dat gaat niet helemaal hoe het moet.


om deze query gaat het

PHP:
1
2
3
$sql = "SELECT f.*, count(s.session_id) as forum_users
    FROM forum_forums f, forum_sessions s
    WHERE s.session_page = f.forum_id";


Maar de session_page wordt niet alleen opgeslagen als een forum_id het wordt opgeslagen als F:2 F van Forum, dubbelepunt als deelteken en dan het forum_id, maar hoe los ik dat dan op in die query

PHP:
1
2
3
$sql = "SELECT f.*, count(s.session_id) as forum_users
    FROM forum_forums f, forum_sessions s
    WHERE s.session_page = 'F:'. f.forum_id";

ik heb het zo geprobeerd maar dat wil niet..

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Waarom sla je het zo op als F:2 ?

Je mag dat doen, maar ik vind het onzinnig. Je foreign key (session_page in sessions dus), moet dezelfde waarde hebben als de waarde van de primary key van het record in de 'master' table (forum_id in forums dus).

De manier waarop jij die gegevens opslaat is slecht. Je hebt geen mogelijkheid om referentiele integriteit toe te passen, en je moet gaan neuzelen met de waarden m de corresponderende records te vinden.

[ Voor 30% gewijzigd door whoami op 09-11-2003 12:14 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ik sla het op als F:1 omdat dat voor forum staat, daar kan ik dan ook makkelijk T:1 voor topics, en P:1 voor profielen ik zou anders niet weten hoe ik dat moet maken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Je hoeft daar helemaal geen F, P, of whatever voor te zetten.

Een record moet enkel uniek blijven binnen 1 tabel, niet binnen de hele database. Die uniqueness wordt aangeduid dmv de PK. 1, 2, 3, .... n is dus al voldoende.

https://fgheysels.github.io/


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

En als je echt niet zonder type-aanduiding kan dan is het beter om dat via een extra kolom aan te geven.

Today's subliminal thought is: