[PHP] if record exists in [MYSQL]

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik zit met een probleempje. Ik heb twee tabellen.

tabel 1:
id=1 naam=Jan
id=2 naam=Piet

tabel 2:
id=1 idtabel1=1 test=3

Beetje vage tabellen, maar is even als voorbeeld.
Nu gaat het hier om de waarde van 'test'.
Ik heb bij een vorige query de resultaten id=1 en id=2 van tabel 1 gekregen.
Nu wil ik met deze waardes en middels de 'idtabel1' record de 'test' ophalen uit de tweede tabel.
Maar zoals je kan zien heeft alleen id=1 een record in tabel 2. Echter moet ik toch ook checken of id=2 er eentje heeft omdat ik dit allemaal in een while lusje doe.

Ik krijg wel de resultaat die ik wil hebben alleen daarnaast krijg ik ook een msql foutmelding dat id=2 niet bestaat.

Mijn vraag is hoe ik dit dan kan afvangen. Ik heb iets gevonden over een mysql query als het volgende:

SQL:
1
2
3
SELECT columns 
FROM tables
WHERE EXISTS ( subquery ); 


Maar als ik deze code gebruik in php zegt hij van dat het niet een goede mysql query is.
Weet iemand waat dit aanligt, of is er een oplossing?

Gr

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
subquerys worden pas ondersteunt va. versie 5 meen ik, heb je die ook draaien?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nee nog niet. Is er dan misschien nog een andere oplossing die jullie zo weten? Of iets waarnaar ik zelf kan zoeken?

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Verwijderd schreef op 19 april 2004 @ 11:33:
Nee nog niet. Is er dan misschien nog een andere oplossing die jullie zo weten? Of iets waarnaar ik zelf kan zoeken?
Query anders opbouwen...

Acties:
  • 0 Henk 'm!

Verwijderd

Met een simpele join
code:
1
2
3
4
5
6
7
8
SELECT 
  tabel1.field1,
  tabel1.enz 
FROM 
  table1, 
  table2 
WHERE 
  tabel1.id = tabel1.idtable1

Acties:
  • 0 Henk 'm!

  • phYzar
  • Registratie: November 2001
  • Laatst online: 13:33
select * from tabel1,table2 where tabel1.id=tabel2.idtabel1

zoiets?

Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

Nokia en phYzar hebben een goed werkende query gepost, daar wil ik nog aan toevoegen dat subqueries in MySQL 4 netjes werken, zolang je maximaal 1 subquery per query gebruikt. Desondanks kun je beter een join gebruiken.

'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!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
code:
1
2
3
4
5
6
7
8
9
SELECT
  tabel1.naam,
  tabel2.test
FROM
  tabel1
LEFT JOIN
  tabel2
ON
  tabel1.id=tabel2.tabel1id

resultaat als je het op de gegeven gegevens uitvoert:
code:
1
2
3
4
naam - test
___________
Jan  - 3
Piet -

De queries van Nokia en phYzar voldoen volgens mij niet omdat er niet altijd een record in tabel2 zit die te linken is aan tabel1. Met een left join wordt hoe dan ook een resultaat terug gegeven.

[ Voor 18% gewijzigd door Michali op 19-04-2004 13:31 ]

Noushka's Magnificent Dream | Unity

Pagina: 1