PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   nur doppelte Einträge anzeigen (http://www.selfphp.de/forum/showthread.php?t=26020)

mgbig 22.06.2017 16:10:07

nur doppelte Einträge anzeigen
 
Hallo

Ich habe folgende Tabellen:

Artikel
Code:

Nr---|Name
1    |Hemd
2    |Shirt
3    |Jacke
4    |Hose

Lager
Code:

ID-|ArtikelNr|Ort
01 | 1      |11
02 | 3      |50
03 | 1      |17
04 | 2      |19
05 | 4      |17
06 | 4      |35

Ich möchte gerne per SELECT eine Abfrage starten, die mir nur die Artikel mit dem Lagerort angibt, die mehr als 1 x vorhanden sind, gruppiert nach ArtikelNr, also so:

Code:

ArtikelNr|Name|Ort
1        |Hemd|11
1        |Hemd|17
4        |Hose|17
4        |Hose|35

Hierzu hätte ich gern eine passende SQL Abfrage oder einen Hinweis darauf, wo ich eine passende Anleitung dazu finde.
Danke mgbig

chorn 22.06.2017 16:18:26

AW: nur doppelte Einträge anzeigen
 
kannst du mit GROUP BY, HAVING und COUNT lösen.

mgbig 22.06.2017 16:39:16

AW: nur doppelte Einträge anzeigen
 
Jau, Danke, das sieht passend aus. Werde ich ausprobieren.
mgbig

mgbig 22.06.2017 18:35:40

AW: nur doppelte Einträge anzeigen
 
Hm, es tut nicht so wie es soll.

so sieht die Abfrage aus:

SELECT * FROM lager lg JOIN artikel art on art.nr=lg.artikelnr GROUP BY art.Nr HAVING COUNT(*) > 1 ORDER BY art.name

Und das kommt bei heraus:
Code:

ID        ArtNr        Ort        Nr        Name       
1        1        L11        1        Hemd
5        4        L17        4        Hose

Es wird also immer nur einer der Lagerorte ausgegeben, ich hätte aber gern alle.
mgbig

sysop 23.06.2017 10:10:00

AW: nur doppelte Einträge anzeigen
 
Die Doppelten Artikelnummer sollten so gehen, den Rest (Artikeldaten Gruppierung etc) bekommst du selber hin.

Code:

SELECT * FROM `Lager`
WHERE EXISTS (
SELECT ID,ArtikelNr,Ort FROM `Lager` Dup
WHERE
`Lager`.`ArtikelNr` = `Dup`.`ArtikerlNr`
AND
`Lager`.`ID` <> `Dup`.`ID`
)
ORDER BY `ArtikelNr`


mgbig 23.06.2017 13:22:24

AW: nur doppelte Einträge anzeigen
 
Super, so gehts. Danke!


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:36:28 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.