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, 5702 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 ..
Neuester Wissensbeitrag
Microsoft Office

MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

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

Frage von datadexx zum Thema Datenbanken ...

PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

Windows Update
gelöst Windows Server 2012 R2 - WSUS Problem (1)

Frage von aladin.inder zum Thema Windows Update ...

Verschlüsselung & Zertifikate
Zugriff auf mySQL-DB mit ODBC und SSL (2)

Frage von Titan24 zum Thema Verschlüsselung & Zertifikate ...

Heiß diskutierte Inhalte
Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...

Windows Server
gelöst Rechte als Admin vergeben - Zugriff verweigert (14)

Frage von Ghost108 zum Thema Windows Server ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (12)

Frage von ProfessorZ zum Thema Router & Routing ...