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

Oracle SQL Subselect und LEFT JOIN

Frage Entwicklung Datenbanken

Mitglied: mwks2802

mwks2802 (Level 1) - Jetzt verbinden

15.04.2011, aktualisiert 10:01 Uhr, 5180 Aufrufe, 1 Kommentar

Hallo,

ich bin absoluter Anfänger im Bereich ORACLE Datenbanken.
Ich hoffe, dass jemand mir weiterhelfen kann....

Ich habe folgendes Problem:

Ich muss möglichst einfach aus zwei Tabellen Werte zusammen führen.
Aus Tabelle 1 brauche ich alle Einträge und aus Tabelle 2 den jüngsten zu der ID passenden Eintrag.
MySQL hat meine Query ohne weiteres ausgeführt und ein Ergebnis geliefert, aber Oracle gibt mir eine 'false' zurück.

hier die Tabellen Struktur:

Tabelle 1:

-- Tabellenstruktur für Tabelle `ezsearch_search_phrase`
--

CREATE TABLE IF NOT EXISTS `ezsearch_search_phrase` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`phrase` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`phrase_count` int(11) DEFAULT '0',
`result_count` int(11) DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `ezsearch_search_phrase_phrase` (`phrase`),
KEY `ezsearch_search_phrase_count` (`phrase_count`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;


Tabelle 2:

-- Tabellenstruktur für Tabelle `ezsearch_return_count`
--

CREATE TABLE IF NOT EXISTS `ezsearch_return_count` (
`count` int(11) NOT NULL DEFAULT '0',
`id` int(11) NOT NULL AUTO_INCREMENT,
`phrase_id` int(11) NOT NULL DEFAULT '0',
`time` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `ezsearch_return_cnt_ph_id_cnt` (`phrase_id`,`count`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=9 ;



Meine Abfrage für MySQL:

SELECT esp.*,
( SELECT MAX( time )
FROM ezsearch_return_count
WHERE ( phrase_id = esp.id )
) as time
FROM ezsearch_search_phrase as esp
LEFT JOIN ezsearch_return_count AS erc
ON esp.id = erc.phrase_id
GROUP BY esp.id;


Danke für eure Hilfe!
Mitglied: Indrador
21.04.2011 um 13:18 Uhr
Hmmmm entweder begreife ich nicht was das tun soll und ich stehe auf dem Schlauch....
du holst dir nichts aus dem Left Join, der ist einfach nur da
und das group by ist auch unnötig, da du dir bereits den max Wert zu der ID geholt hast.

Damit solltest du dir das holen können, was du oben beschrieben hast, alles aus esp und den max wert aus der count.

SELECT esp.*,
(
SELECT MAX( time )
FROM ezsearch_return_count
WHERE ( phrase_id = esp.id )
) as time
FROM ezsearch_search_phrase as esp

Falls Ziel der Übung sein soll, dir das Value von count zu holen, wo der time = max(time) ist, kann das folgendermaßen aussehen:

SELECT esp.*,
(
Select c.Count
from ezsearch_return_count as c
where c.phrase_id = esp.id and c.time = (
SELECT MAX( time )
FROM ezsearch_return_count as c2
WHERE ( c2.phrase_id = esp.id )
)
) as Count
FROM ezsearch_search_phrase as esp
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst SQL Multiple Join auf selbe ID (3)

Frage von Memo66 zum Thema Datenbanken ...

Datenbanken
SQL Auswertung 2 Joins und SUM

Frage von c64b311ee9 zum Thema Datenbanken ...

Datenbanken
SQL - Mehrere Tabellen über JOINS verketten (1)

Frage von Gwahlers zum Thema Datenbanken ...

Datenbanken
gelöst SQL ORDER BY und Join mit 2 Tabellen (7)

Frage von Dipps zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (23)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (15)

Frage von departure69 zum Thema Windows Server ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Router & Routing
FTTH bzw FTTB Router (11)

Frage von ukulele-7 zum Thema Router & Routing ...