Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL Schnittmenge Abfrage Problem

Frage Entwicklung Datenbanken

Mitglied: nk

nk (Level 1) - Jetzt verbinden

23.09.2010 um 15:44 Uhr, 5769 Aufrufe, 5 Kommentare

Hallo,
komme bei einer evtl. simplen Abfrage nicht weiter.

Folgende Tabelle:

uid_local | uid_foreign
1 | 3
2 | 3
1 | 6
3 | 6


Nun möchte ich alle Reihen mit der uid_local 1 und 2 ausgeben lassen. Aber nur die mit gleicher uid_foreign.
Eine Abfrage nach den Reihen mit der uid_local 1, 2 und 3 sollte also keine Reihe ausgeben.

Ist das mit einer Abfrage zu schaffen oder muss ich mir da was anderes einfallen lassen?

Danke & Viele Grüße,
Nils
Mitglied: awagner82
23.09.2010 um 16:46 Uhr
Hi,

Was heißt mit "nur mit gleicher" uid_foreign?
Ist das ein fester Wert?
Willst du die Ergebnismenge untereinander vergleichen und anschließend nach dem Feld gruppieren?

Gruß
Bitte warten ..
Mitglied: nk
23.09.2010 um 17:02 Uhr
Hallo,
ich versuch mal zu erklären, worum es geht:
Es geht darum Inhalte über Keywords zu filtern.
Man soll bestimmte Keywords (uid_local) auswählen können und dann nur die Inhaltseinträge (uid_foreign) angezeigt bekommen, die mit den Keywords verknüpft wurden.
uid_foreign ist also kein fester Wert.

Gruß
Bitte warten ..
Mitglied: it-frosch
23.09.2010 um 18:23 Uhr
Hallo Nils,

>Nun möchte ich alle Reihen mit der uid_local 1 und 2 ausgeben lassen. Aber nur die mit gleicher uid_foreign.

und

>Man soll bestimmte Keywords (uid_local) auswählen können und dann nur die Inhaltseinträge (uid_foreign) angezeigt bekommen, die mit den Keywords verknüpft wurden.

sind verschiedene Abfragen.

Was willst du denn nun?

>Man soll bestimmte Keywords (uid_local) auswählen können und dann nur die Inhaltseinträge (uid_foreign) angezeigt bekommen, die mit den Keywords verknüpft wurden.

Das wäre diese Abfrage.

select uid_local,uid_foreign from tabelle where uid_local in ('Keyword1', ... ,'KeywordN')
order by uid_local



>Nun möchte ich alle Reihen mit der uid_local 1 und 2 ausgeben lassen. Aber nur die mit gleicher uid_foreign.

wäre

select a.uid_local,a.uid_foreign from tabelle a
where a.uid_local in ('1','2')
and a.uid_foreign in (select b.uid_foreign from tabelle b where b.uid_local in ('1','2') )

Bei der zweiten Abfrage bin ich mir nicht ganz sicher. Vielleicht meldet sich ja Biber dazu mal.

grüße vom it-frosch
Bitte warten ..
Mitglied: nxclass
23.09.2010 um 20:42 Uhr
01.
SELECT 
02.
    `uid_foreign`, 
03.
    GROUP_CONCAT(DISTINCT `uid_local` ORDER BY `uid_local` ASC SEPARATOR ', ') AS 'uid_local_list'     
04.
FROM `tab_100923` 
05.
GROUP BY `uid_foreign`;
erst mal eine Liste erzeugen mit allen uid_foreign und den dazugehörigen uid_local - in aufsteigender Folge.

nun könnte man darin nach der richtigen Kombination suchen.
01.
SELECT temp.`uid_foreign` 
02.
FROM ( 
03.
    SELECT `uid_foreign`, GROUP_CONCAT( DISTINCT `uid_local` ORDER BY `uid_local` ASC SEPARATOR ', ' ) AS 'uid_local_list' 
04.
    FROM `tab_100923` 
05.
    GROUP BY `uid_foreign` 
06.
) AS `temp` 
07.
WHERE temp.`uid_local_list` LIKE '1, 2';
Bitte warten ..
Mitglied: nk
30.09.2010 um 17:04 Uhr
Danke!
Damit habe ich es nun hinbekommen.
Viele Grüße,
Nils
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst MySQL Abfrage für demographische Zwecke (3)

Frage von morphil zum Thema Datenbanken ...

Datenbanken
gelöst MYSQL Abfrage Werte summieren (3)

Frage von Ghost108 zum Thema Datenbanken ...

Datenbanken
gelöst MySQL Abfrage um JOIN erweitern (14)

Frage von datadexx zum Thema Datenbanken ...

Datenbanken
MySQL Liste simulieren (2)

Frage von Yanmai zum Thema Datenbanken ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(3)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (11)

Frage von keine-ahnung zum Thema Exchange Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...