Duplicate Verwijderen met INNER JOIN

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erwin Nandpersad

Erwin Nandpersad

10/11/2010 11:18:35
Quote Anchor link
Hoi Allen,

Ik heb een SQL statement dat ervoor zorgt dat in twee velden zoekt, als de achternaam niet bestaat zoek dan op de voornaam. Hiervoor heb ik de OR statement gebruikt. Hij werkt prima, het enige probleem is dat er duplicate values voorkomen.

Hoe zou ik mijn SQL statement nou kunnen constructueren?
Zie hieronder SQL

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$statement ="SELECT r.VendId,r.Name,r.JobDescription,r.FirstName,r.Initials,r.OfficePhone,r.PrivCountryCode,r.MobilePhone,r.PrivAddr,r.Email ,a.Name,a.Addr,a.PostCode,a.State,a.City
 FROM T_VendorRelation r INNER JOIN t_vendoraddress a ON a.VendId = r.VendId WHERE r.FirstName LIKE '%$voornaam%' OR r.Name LIKE '%$voornaam%' AND a.VendId = r.VendId";
Gewijzigd op 10/11/2010 11:19:15 door Erwin Nandpersad
 
PHP hulp

PHP hulp

18/12/2024 06:03:43
 
Teun Hesseling

Teun Hesseling

10/11/2010 11:46:51
Quote Anchor link
ik snap je duplicate values niet helemaal... bedoel je mensen met de zelfde achternaam? mensen waarvan een achternaam ook een voornaam is? mensen met de zelfde voornaam?
 
Erik Rijk

Erik Rijk

10/11/2010 11:54:50
Quote Anchor link
icm DISTINCT / GROUP BY?
 
Erwin Nandpersad

Erwin Nandpersad

10/11/2010 11:57:19
Quote Anchor link
Ik heb Distinct geprobeert , maar dat werkt niet. De logica is als volgt: Men zoekt in een txtvak een naam, het script zorgt dan automatisch ervoor als er niets in voornaam gevonden is zoek dan in achternaam. Ik wil ervoor zorgen dat de ID's unique blijven. Nu wordt er bijv 2x een record gegeven met hetzelfde ID naam etc etc/ Dit moet 1x zijn. Weet iemand hoe dit gaat?
 
Teun Hesseling

Teun Hesseling

10/11/2010 12:03:48
Quote Anchor link
ik weet niet zeker of het gaat helpen, maar je kunt er ook 2 query's van maken 1 die eerste zoekt naar de voornaam. krijg je niks terug(num rows) dan zoeken op achternaam. misschien werkt dat beter. weet het niet zeker.
 
John D

John D

10/11/2010 12:25:42
Quote Anchor link
Je moet dus je functionaliteit: "als de achternaam niet bestaat " ook wel inbouwen want dat heb je nu niet. Dus: where (achternaam like %bla% or (achternaam is null and voornaam like %bla%))
Edit:

overigens sluit je daarmee niet uit dat je 2x dezelfde voornaam vindt....
Gewijzigd op 10/11/2010 12:27:34 door John D
 
Erwin Nandpersad

Erwin Nandpersad

10/11/2010 14:19:56
Quote Anchor link
dat zou niet uit moeten maken toch?
want wat als nou de voornaam wel bestaat en de achternaam ook? Dan heb je toch een duplicate value, deze methode heb ik al geprobeerd.
 
John D

John D

10/11/2010 14:26:31
Quote Anchor link
WHERE (achternaam LIKE %bla% OR (achternaam IS NULL AND voornaam like %bla%))
Geeft geen duplicate value als de voornaam wel bestaat en de achternaam ook!
want het tweede deel achternaam is null faalt. Dit gaat alleen fout bij 2 of meer dezelfde voornaam.
 
Erwin Nandpersad

Erwin Nandpersad

10/11/2010 14:27:31
Quote Anchor link
oke, zal het nogmaals proberen... thxn :-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.