Select van meerdere tables
videos: id, titel, embed, beschrijving, views
nieuws: id, titel, plaatje, bericht, datum, views
Ik wil graag in een select van allebei de databases data uithalen
Hoe moet ik dat doen?
zoals dit:
Code (php)
1
2
3
2
3
<?$sql= mysql_query("SELECT * FROM videos AND nieuws ORDER BY views DESC LIMIT 20") or die (mysql_error());
while($data= mysql_fetch_assoc($sql)){
?>
while($data= mysql_fetch_assoc($sql)){
?>
Ik weet dat de bovenstaande code fout en nutteloos is maar zodat jullie het een beetje snappen van wat ik bedoel
Want daar zit een groot verschil in.
Waarschijnlijk bedoel je tabellen, dus dan klopt je query al redelijk.
Hoewel je ze ook zou kunnen joinen, maar zie geen relatie tussen de verschillende tabellen.
Daarnaast heb je een probleem met de kolommen. Omdat er SELECT * staat wordt alles gewoon zo in je resultset gekiepert, waardoor het onduidelijk gaat worden welk 'id', welke 'titel' en welke 'views' je ophaalt.
De goede opmerking van Bart is wel over de relatie tussen beide tabellen. Zo te zien is er geen relatie en dus moet je ook niet gaan joinen. Wat je wel zou kunnen overwegen is met een UNION te werken. Daar kom je dan alleen met een aantal problemen te zitten. In de eerste plaats hebben de twee tabellen niet een gelijk aantal kolommen, ten tweede hebben de kolommen binnen de tabellen (behalve id, titel en views) niet dezelfde content. Daardoor ga je in 1 kolom in je resultset verschillende soorten velden krijgen. Daar moet je dan wel goed mee omgaan.