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
Kommentar vom Moderator masterG am 18.05.2012 um 08:39:28 Uhr
Verschoben nach Datenbanken

SELECT Anweisung mit mehreren Bedingungen

Frage Entwicklung Datenbanken

Mitglied: zapatista

zapatista (Level 1) - Jetzt verbinden

16.05.2012, aktualisiert 18.05.2012, 2846 Aufrufe, 10 Kommentare

Hallo zusammen,

ich benötige von Euch Hilfe bei der Erstellung einer SELECT-Abfrage (mySQL) mit mehreren Bedingungen:

Tabelle1 (Gruppen)

person_id project_position_id
(41) (3)

Tabelle2 (Personen)

id user_id
(41) Globale Variable

Klammerwerte sind nicht bekannt. Die user_id erhalte ich durch ein Skript [userid] - für die WHERE-Bedingung.

Also das Ziel ist jetzt den Wert "3" mit der angemeldeten [userid] zu bekommen. Fiktiv ist hier die Person mit der id=41 angegeben. Ich hoffe ich konnte das Problem einigermaßen verständlich beschreiben.

Vielen Dank im Voraus.

Christian
Mitglied: Dirmhirn
16.05.2012 um 16:37 Uhr
Hi!

du suchst einen JOIN. damit verknüpfst du die beiden Tabellen temporär und suchst dann die Zeilen mit user_id = irgendwas.

sg Dirm
Bitte warten ..
Mitglied: zapatista
16.05.2012 um 16:54 Uhr
Kannst du mir vielleicht eine kurze Gedächtnisstütze geben, wie hier der JOIN zu setzen ist. Das wäre super.
Bitte warten ..
Mitglied: Dirmhirn
16.05.2012 um 17:19 Uhr
Hi!
so in etwa:
01.
SELECT 
02.
FROM Tabelle1 JOIN Tabelle2 ON id = person_id  
03.
WHERE user_id = 'kunz'
LEFT, Right ... sieh dir dann lieber selber an, weiß ja nicht wie das rundherum bei dir aussieht:
http://dev.mysql.com/doc/refman/5.1/de/join.html

sg Dirm
Bitte warten ..
Mitglied: filippg
16.05.2012 um 20:27 Uhr
Hallo,

mein Tipp: investiere 30 Minuten und lies dir http://www.administrator.de/index.php?link=1006 durch. Danach bist du wirklich schlauer.

Gruß

Filipp
Bitte warten ..
Mitglied: zapatista
16.05.2012 um 21:17 Uhr
Danke für eure Tipps. Aber ich bekomme es nicht gebacken. Vielleicht liegts am Feierabendbier.

Also ich habe da folgendes mir ausgedacht - nach der Doku über Relationale Datenbanken:

01.
SELECT #__Tabelle1.project_position_id  
02.
FROM #__Tabelle1 
03.
INNER JOIN #__Tabelle2 ON (#__Tabelle1.person_id = #__Tabelle2.id) 
04.
WHERE #__Tabelle2.user_id = [userid]
Leider liefer er kein Ergebnis
Bitte warten ..
Mitglied: nxclass
16.05.2012 um 23:24 Uhr
Leider liefer er kein Ergebnis
versuch mal:
01.
SELECT 
02.
  `Personen`.`id`, 
03.
  `Personen`.`user_id`, 
04.
  `Gruppen`.`project_position_id` 
05.
FROM `Personen` 
06.
  LEFT JOIN `Gruppen` ON `Gruppen`.`person_id` = `Personen`.`id` 
07.
WHERE 
08.
   `Personen`.`user_id` = ?  /* oder $userid oder 3 */
... so kannst Du jedenfalls erkennen: wenn Person existiert aber keine Gruppen dazu.
Bitte warten ..
Mitglied: zapatista
18.05.2012 um 21:05 Uhr
Das klappt schon mal ganz gut jetzt.

Mal ins Blaue gefragt: Wie sieht das bei der entgegengesetzten UPDATE-Variante aus? Arbeitet man da auch mit JOIN oder gibts da andere Verknüpfungen?

Danke schonmal...
Bitte warten ..
Mitglied: nxclass
18.05.2012 um 23:54 Uhr
Arbeitet man da auch mit JOIN
... natürlich kann man bei einem UPDATE auch Tabellen Verknüpfen - aber manipuliert werden nur die Daten einer Tabelle.
Bitte warten ..
Mitglied: filippg
19.05.2012 um 03:38 Uhr
... natürlich kann man bei einem UPDATE auch Tabellen Verknüpfen - aber manipuliert werden nur > die Daten einer Tabelle.
Ähhh.. Wieso? Meines bescheidenen Wissens: genau so, wie man bei einem SELECT...JOIN mehrere Zellen aus mehreren Tabellen angeben kann, die selektiert werden, kann man bei einem UPDATE...JOIN mehrere Zellen aus mehreren Tabellen angeben, die aktualisiert werden.

Gruß

Filipp
Bitte warten ..
Mitglied: nxclass
19.05.2012 um 12:31 Uhr
mehrere Zellen aus mehreren Tabellen angeben, die aktualisiert werden.
das stimmt für MySQL 5. (ggf auch schon ab einer höheren 4er Version von MySQL)
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...