SQL Left join probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Reboot
  • Registratie: Januari 2009
  • Laatst online: 29-07 22:18
Hallo.

Ik zit met een probleempje.

Als ik een left join uitvoer op bijvoorbeeld categorie ID.
Tussen mijn blog en mijn nieuws database, heb ik geen terugkerende records.

Ik weet waardoor het komt maar ken de workaround er niet van en kan niet direct iets terugvinden.

mijn sql is:
PHP:
1
$output = mysql_query("SELECT * FROM News LEFT JOIN Blog ON Blog.CatID = News.CatID WHERE CatID='$catid'");


Maar in Blog heb ik Title en in News heb ik Title

En ik wil graag een lijst van alle blogs, en alle nieuwspost waar CatID 7 is bv.

Weet iemand hier raad bij?

Dank.
Rob

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Je hebt een programmeer probleem (dus geen SEA) met je SQL query (dus geen php). Titel change en move dus. Volgende keer graag zelf wat beter opletten.

Over je probleem. Wat denk je uberhaupt te bereiken hiermee? Een join is bedoeld voor relaties. Er IS geen relatie tussen een blog en een newsitem (een newsitem hoort niet bij een blog en een blog hoort niet bij een newsitem) dus een join tussen beiden slaat dan ook nergens op. Probeer voor jezelf maar eens uit te vogelen hoe de resultset er uberhaupt uit had gezien.

Als jij een lijst met blogs en een lijst met news terug wilt hebben van een specifieke categorie dan zul je dat gewoon met twee queries moeten doen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Janoz schreef op donderdag 17 juni 2010 @ 13:37:
Als jij een lijst met blogs en een lijst met news terug wilt hebben van een specifieke categorie dan zul je dat gewoon met twee queries moeten doen.
Niet per se; je zou een subquery/temp table oplossing kunnen maken waarbij je met een union de relevante data bij elkaar "groepeert" en daar vervolgens uit selecteren. Al zouden twee query's een stukje eenvoudiger zijn. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Janoz schreef op donderdag 17 juni 2010 @ 13:37:
Als jij een lijst met blogs en een lijst met news terug wilt hebben van een specifieke categorie dan zul je dat gewoon met twee queries moeten doen.
Wil hij dat :') Ik maar denken dat hij twee kolommen title heeft die niet afzonderlijk uitgelezen kunnen worden zo.

Bij union moeten de tabellen maar net dezelfde opbouw hebben.

Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 23:19
Alias gebruiken, daarbij is het vaak handiger (sneller) om alleen de kolommen die je hebben moet te selecteren.

(SELECT table.colname AS table_column, table2.colname AS table2_column FROM table LEFT JOIN table2 enz..)

Acties:
  • 0 Henk 'm!

  • Reboot
  • Registratie: Januari 2009
  • Laatst online: 29-07 22:18
Ja ik dacht er net ook pas aan dat ik gewoon 2 query's nodig had..

Wat is het soms makkelijker dan het werkelijk is.

En bedankt voor die info jbdeiman dit gaat nog van pas komen

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Een union is imho een constructie waarbij je meerdere queries in 1 resultset terug kunt geven. En volgens die 'definitie' dus nog steeds meerdere queries ;).

@jbdeiman: Meer dan een cartesisch product gaat er echt niet uit een dergelijke query komen in dit geval.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1