SQL søgning
Jeg har et formfelt hvor jeg søger på kunder i databasen.En kunde kan godt have flere registreringsnumre som tilfældet er her.
Hvis jeg søger på %201423% får jeg 6 resultater. Der burde kun være 5 resultater. (samme kunde vises 2 gange)
Hvis jeg søger på %20142389% for jeg 2 resulater (samme kunde vises 2 gange)
CREATE TABLE IF NOT EXISTS `tblregnummer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`rel_id` int(11) NOT NULL,
`regnummer` varchar(7) COLLATE utf8_danish_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `rel_id` (`rel_id`),
KEY `regnummer` (`regnummer`)
) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci PAGE_CHECKSUM=1 AUTO_INCREMENT=4 ;
--
-- Dumping data for table `tblregnummer`
--
INSERT INTO `tblregnummer` (`id`, `rel_id`, `regnummer`) VALUES
(1, 1, 'zx42943'),
(2, 1, 'hg87898');
Table structure for table `tblkunder`
--
CREATE TABLE IF NOT EXISTS `tblkunder` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firma` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`cvr` varchar(8) COLLATE utf8_danish_ci DEFAULT NULL,
`fornavn` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`efternavn` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`ean` varchar(13) COLLATE utf8_danish_ci DEFAULT NULL,
`adresse` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`adresse2` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`postnr` varchar(4) COLLATE utf8_danish_ci DEFAULT NULL,
`city` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`land` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`email` varchar(50) COLLATE utf8_danish_ci DEFAULT NULL,
`telefon` varchar(8) COLLATE utf8_danish_ci DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `telefon` (`telefon`),
KEY `cvr` (`cvr`),
KEY `telefon_2` (`telefon`)
) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci PAGE_CHECKSUM=1 AUTO_INCREMENT=6 ;
INSERT INTO `tblkunder` (`id`, `firma`, `cvr`, `fornavn`, `efternavn`, `ean`, `adresse`, `adresse2`, `postnr`, `city`, `land`, `email`, `telefon`) VALUES
(1, 'Hansens hest', '', 'Hans', 'hansen', '', 'Skolevej 38', '', '8900', 'Randers', '', '', '20142389'),
(2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '20142381'),
(3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '20142380'),
(4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '20142383'),
(5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '20142392');
[div]
SELECT
tk.id,tk.firma,tk.cvr,tk.fornavn,tk.efternavn,tk.ean,tk.adresse,tk.adresse2,tk.postnr,tk.city,tk.land,tk.email,tk.telefon
FROM tblkunder tk
LEFT JOIN tblregnummer tr ON
tr.rel_id = tk.id
WHERE
tk.telefon LIKE ? || tk.firma LIKE ? || tk.cvr LIKE ? || tk.fornavn LIKE ? || tk.efternavn LIKE ? || tk.ean LIKE ? || tk.adresse LIKE ? || tk.email LIKE ? || tr.regnummer LIKE ?
GROUP BY
tk.id,
tr.regnummer