login  Naam:   Wachtwoord: 
Registreer je!
 Forum

2 tabellen via 1 query

Offline SimonDW - 11/10/2010 17:42 (laatste wijziging 12/10/2010 17:52)
Avatar van SimonDWNieuw lid Query ziet er als volgt uit:
"SELECT * FROM nieuws ORDER BY 'id' DESC limit 0,5"
5 recentste items worden uit tabel 'nieuws' gelezen.
Nu wil ik via dezelfde query een 2de tabel ('ingezonden') betrekken. Deze zou dan ook resultaten geven voor de query.

"SELECT * FROM nieuws AND ingezonden ORDER BY 'id' DESC limit 0,5"
maar dat lukt blijkbaar niet...

6 antwoorden

Gesponsorde links
Offline Filip - 11/10/2010 17:46 (laatste wijziging 11/10/2010 17:50)
Avatar van Filip IRC guru Het is dan ook SELECT * FROM tabel1,tabel2 ORDER BY tabel.kolom DESC LIMIT 0,5

Je kan ook altijd hier eens kijken: http://www.site...ySQL/Joins

En zoizo kan je ook best een link voorzien tussen tabel1 en tabel2 (bijvoorbeeld een id) en dan WHERE tabel1.id = tabel2.id ofzoiets
Offline SimonDW - 11/10/2010 18:24 (laatste wijziging 12/10/2010 17:34)
Avatar van SimonDW Nieuw lid Tnx, heb ff gekeken naar de joins

Gebruik nu volgend:

$query = "SELECT * FROM nieuws,ingezonden ORDER BY nieuws.id,ingezonden.id DESC LIMIT 0,5";

Hij toont enkel de resultaten van tabel 'ingezonden', tabel 'nieuws' wordt niet weergegeven  
Offline Hend - 12/10/2010 17:48
Avatar van Hend Lid Misschien zit er dan een foutje in de pagina zelf. Waar ze worden weergegeven?
Offline SimonDW - 12/10/2010 17:54 (laatste wijziging 15/10/2010 13:48)
Avatar van SimonDW Nieuw lid Wordt gewoon op de startpagina weergegeven.

Dit draait perfect: "SELECT * FROM nieuws ORDER BY 'id' DESC limit 0,5", maar van zodra ik de tabel 'ingezonden' er wil bij betrekken krijg ik enkel en alleen deze laatste tabel te zien.

En dat doe ik via $query = "SELECT * FROM nieuws,ingezonden ORDER BY nieuws.id,ingezonden.id DESC LIMIT 0,5";

Zou er een andere methode zijn?

Offline Luc18 - 18/10/2010 10:19 (laatste wijziging 18/10/2010 10:20)
Avatar van Luc18 Onbekend Zitten deze 2 tabbellen gekoppeld aan elkaar?

Zoja kun je joins gebruiken.

anders:

SELECT * FROM nieuws
UNION ALL
SELECT * ingezonden
UNION ALL

Deze kun je in een query zetten dus zo:

  1. mysql_query("SELECT * FROM nieuws
  2. UNION ALL
  3. SELECT * ingezonden
  4. UNION ALL") or die(mysql_error());


Hopelijk werkt het.

Met vriendelijke groet,

Luc
Offline AgentX - 18/10/2010 12:48
Avatar van AgentX HTML beginner Om even op Luc18's reactie terug te komen: Je kunt inderdaad joins gebruiken. Zelf maar ik daar vaak gebruik van.

  1. SELECT * FROM `nieuws`
  2. LEFT OUTER JOIN `ingezonden`
  3. ON `nieuws`.`id`=`ingezonden`.`id`


In dit geval zijn nieuws.id en ingezonden.id aan elkaar gekoppeld.

Het resultaat hiervan is één grote tabel met alle kolommen uit zowel de nieuws-tabel en de ingezonden-tabel.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s