Toon posts:

[mysql] Onomschrijfbaar probleem ;)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Oi,

Mijn mySQL probleem is op zich niet onbeschrijfbaar, maar wel in één zin :).

Het zit zo, ik heb 2 tabellen, 'nieuws' & 'downloads'. Bij het toevoegen van een nieuwtje kan je aangeven of het om een download gaat, en daarbij de juiste download selecteren. Op de frontpage komt dan de link naar de download+link naar een screenshot te staan. Onder nieuws staat dus (o.a.) 'download_id' (INT) en onder downloads staat onder andere de kolommen 'id' (INT) en 'screenshot' (INT-->id naar tabel screenshot, dus via plaatje.php?id=$screenshot wordt ie opgevraagd).

Met deze query haal ik nu de info te voorschijn:
code:
1
2
3
4
5
6
7
8
9
10
SELECT nieuws.id, nieuws.headline, nieuws.tekst, nieuws.datum, 
nieuws.admin_id, nieuws.download_id, nieuws.bron, 
admins.id AS aid, admins.voornaam AS voornaam,
admins.achternaam AS achternaam, 
admins.email AS email, downloads.screenshot, 
downloads.id AS did 
FROM nieuws, admins, downloads 
WHERE nieuws.id='$id' 
AND nieuws.admin_id=admins.id 
AND nieuws.download_id=downloads.id

Het probleem is alleen dat niet ALLE nieuwtjes linken naar een download. Daarom krijg ik dankzij 'download_id=id' in de laatste voorwaarde geen results als er geen download bij hoort.

Hoe fix ik dit?

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

met een LEFT JOIN ;) (staat vast in de documentatie (of bestonden joins niet in mySQL?))

kaart != map && bottel != fles
Wacht op antwoord


Verwijderd

Topicstarter
dat is idd mogelijk met mySQL, heb me er alleen nooit in verdiept. Dacht dat joins hetzelfde resultaat gaven als where tabel1.kolom1=tabel2.kolom2.

Maar zal dan wel es ff gaan lezen :)

Verwijderd

Topicstarter
De oplossing :)
code:
1
2
3
4
5
6
7
8
9
10
SELECT nieuws.id, nieuws.headline, nieuws.tekst,
nieuws.datum, nieuws.admin_id, nieuws.download_id, 
nieuws.bron, admins.id AS aid, 
admins.voornaam AS voornaam, 
admins.achternaam AS achternaam, 
admins.email AS email, downloads.screenshot, 
downloads.id AS did 
FROM nieuws, admins 
LEFT JOIN downloads on nieuws.download_id=downloads.id 
WHERE nieuws.id='$id' AND nieuws.admin_id=admins.id

thanx!

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Left Join, Left Join?

Volgens mij is de enige echte juiste term: OUTER JOIN. (Maar ik kan verkeerd zijn natuurlijk. :P)

https://fgheysels.github.io/


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op donderdag 06 juni 2002 22:29 schreef whoami het volgende:
Left Join, Left Join?

Volgens mij is de enige echte juiste term: OUTER JOIN. (Maar ik kan verkeerd zijn natuurlijk. :P)
Als we toch in de wijsneusmode zijn:

Dit is een LEFT OUTER JOIN :P
Pagina: 1