Top-Themen

Aktuelle Themen (A bis Z)

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 Datenbankabfrage über 2 Tabellen

Mitglied: Matz80

Matz80 (Level 1) - Jetzt verbinden

28.09.2011 um 20:44 Uhr, 5604 Aufrufe, 8 Kommentare

Hey Leute,

ich habe ein kleine Problem und hoffe Ihr könnt mir helfen.

Gib es die Möglichkeit eine normale Datenbankabfrage über 2 Tabellen auszuführen? Also: "SELECT * FROM tabelle WHERE name LIKE '$name'"; Normale Abrage halt.,

"SELECT * FROM tabelle1, tabelle2 WHERE name LIKE '$name'";
Wär super klappt aber nicht!

Vielleicht habe ich das nicht ganz verstanden, aber:

Bei Inner Join müssen ja imemr die Where Bedingungen in den jeweiligen Tabellen sein Also: "SELECT T1.*, T2.* FROM tabelle1 T1, tabelle2 T2 WHERE T1.name = T2.name"; Ich habe aber eine variable die z.B. mit name übereinstimmen muss!

Bei UNION müssen Die (?Spaltentypen?) <- "bin mir nich sicher" und die Anzahl der abgefragten Spalten übereinstimmen Also: "SELECT name FROM tabelle1 WHERE name LIKE '$name' //Wenn ich jetzt name und id abfrage klappts nicht mehr! UNION SELECT name FROM tabelle2 WHERE name LIKE '$name'"; Ich brauche aber unterschiedliche Spalten und Anzahlen pro Tabelle.

Komm einfach nicht drauf! Hoffe Ihr versteht was ich meine und könnt mir helfen.

Besten Dank im vorraus!

Mif freundlichen Grüßen

Matz 80
Mitglied: EvilMoe
28.09.2011 um 20:55 Uhr
Hallo,

natürlich geht das.
01.
 SELECT * FROM tabelle1 as t1, tabelle2 as t2 WHERE t1.name = t2.name 
02.
 
EDIT: Du hast als Variable noch einen namen? Dann musste das so machen:
01.
 SELECT * FROM tabelle1 as t1, tabelle2 as t2 WHERE t1.name = t2.name AND t2.name = '$name'
Bitte warten ..
Mitglied: DuNDy21x
28.09.2011 um 21:06 Uhr
Kannst du mal die beiden Tabellen beispielhaft darstellen, je 1, 2 Datensätze?
Bitte warten ..
Mitglied: Matz80
28.09.2011 um 21:23 Uhr
Also vielleicht habe ich ja einen Denkfehler... aber:

Die beiden tabellen haben keinen Bezug zueinander, also klappt WHERE t1.name = t2.name ja nicht.
Müsste ja WHERE name = "$variable" sein oder?

@EvilMoe

Wenn ich jetzt WHERE t1.name = t2.name AND t2.name = " .$name. " schreibe, habe ich doch das gleiche Problem oder etwa nicht?
Da die tabellen keinen Bezug zueinander haben findet er doch bei der WHERE-Bedingung "t1.name = t2.name" schon nichts!?
Da bring mir doch AND t2.name = " .$name. " doch auch nix oder?

Zu dem Beispiel (doofes Beispiel :D)

Tabelle1 (z.B Festnetztelefone)

ID | name | Beschreibug | datum
50 | T500i | Beschreibung halt... | 29.08.2010

Tabelle2 (z.B. Handys)

ID | name | Beschreibung | datum
34 | k508 | Beschreibung halt... | 13.05.2011

*Die Tabellen haben keinen Bezug zueinander also WHERE t1.ID = t2.ID bringt mit nichts*

Ist eine Sucheingabe die mehrere Tabellen von Produkte suchen und sortiert nach Namen ausgeben soll, also die ganze Palette und nicht zur einen Bereich.
Bitte warten ..
Mitglied: EvilMoe
28.09.2011 um 21:37 Uhr
Dann müsste es doch so aussehen.
01.
SELECT * FROM tabelle1 as t1, tabelle2 as t2 WHERE t1.name = '$suche' OR t2.name = '$suche'
So sollte die Abfrage sein?
Bitte warten ..
Mitglied: DuNDy21x
28.09.2011 um 21:42 Uhr
Du könntest die beiden Tabellen per Union verknüpfen und dann eine Abfrage darum legen:

select X.* from (
select ID, name, Beschreibug, datum from Tabelle1
union
select ID, name, Beschreibug, datum from Tabelle2
) X where X.Name like " .$name. "

Damit solltest du dann aus beiden Tabellen alles bekommen bei dem Name der Variablen entspricht. Hierfür müssen jedoch die Tabellendefinitionen vom Typ her gleich sein, sonst müsstest du noch ein paar Umwandlungen durchführen.
Bitte warten ..
Mitglied: Matz80
28.09.2011 um 22:13 Uhr
@EvilMoe

Er gibt mir dabei immer den Fehler aus das die Spalte name mehrdeutig ist da sie ja in beiden vertreten ist.
Wenn ich es hingegen so probiere SELECT t1.*, t2.* FROM tabelle1 as t1, tabelle2 as t2 WHERE t1.name = '$suche' OR t2.name = '$suche'
gibt er mir die Anzahl der Reihen beider Tabellen aus, aber immer mir den Werten der zweiten Tabelle.

@DuNDy21x

Bekomme dabei immer den Fehler "Every derived table must have its own alias"
habs schon gegooglet aber nicht wirklich verstanden was der will!

Ergebnis:
SELECT num, nome FROM
(SELECT 0 as num, tema as nome FROM pesquisa) AS t1
LEFT JOIN
(SELECT COUNT(id) as num, tema as nome FROM pesquisa WHERE (YEAR(ano_defesa) = 0 OR 1=1) GROUP BY tema) As t2
On t1.num=t2.num

(habe kein konkretes Beispiel für UNION gefunden)

Mein Versuch:
select * from
(select ID, name, Beschreibug, datum from Tabelle 1) as t1
union
(select ID, name, Beschreibug, datum from Tabelle 2) as t2
where t1.name like " .$name. " //ohne t2. nur als versuch

klappt aber auch nicht!

Fehler:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as t2 where t1.name like '%$name%'' at line 4
Bitte warten ..
Mitglied: DuNDy21x
28.09.2011 um 22:32 Uhr
Habe oben den Quelltext mal etwas angepasst, da dieser nicht ganz passend war. ggf geht es damit.
Bitte warten ..
Mitglied: dog
28.09.2011 um 22:35 Uhr
Du machst hier was falsch!

Du kannst mit SQL nicht einfach 2 Tabellen zusammenwerfen, die keinen Bezug zueinander haben (SELECT * FROM t1,t2 ist übrigens ein Kreuzprodukt).
Du solltest lieber mehrere Abfragen hintereinander machen!

Ein syntaktisch korrektes UNION wäre übrigens:
01.
02.
	select  
03.
		id, fld1  
04.
	from 
05.
		tbl1 
06.
	where  
07.
		fld1 like 'a%' 
08.
09.
union 
10.
11.
	select  
12.
		id, fld1 
13.
	from  
14.
		tbl2 
15.
	WHERE   
16.
		fld1 like 'a%' 
17.
)
Bitte warten ..
Ähnliche Inhalte
PHP

PHP Datenbankabfrage in Tabelle schreiben

gelöst Frage von newit1PHP4 Kommentare

Hallo, mit folgendem Code ziehe ich die Daten aus der Datenbank Leider wird mir die Ausgabe nur schlicht untereinander ...

Datenbanken

Hilfe bei Datenbankabfrage

gelöst Frage von e51bomagDatenbanken11 Kommentare

Hallo liebe Community, hab gerade ein Blackout bzgl. Realisierung einer Abfrage. Folgende Datenbank: noten: nid, loginname, fid, note, type ...

Batch & Shell

Datenbankabfrage Powershell

gelöst Frage von internet2107Batch & Shell3 Kommentare

Ich versuche auf eine Datenbank zuzugreifen, was auch soweit klappt. Jedoch möchte ich gerne alle Tabellen listen, die sich ...

VB for Applications

Exceltabelle mit anderen 2 tabellen vergleichen

gelöst Frage von 123660VB for Applications12 Kommentare

Hallo zusammen! Ich stehe vor folgendem Problem und bräuchte wieder eure Hilfe. In Excel 2010 muss ich Tabelle 1 ...

Neue Wissensbeiträge
Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 17 StundenDatenschutz2 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 1 TagVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 3 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 3 TagenHyper-V1 Kommentar

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Heiß diskutierte Inhalte
Hardware
Sophos SG135 - Routing
gelöst Frage von Xaero1982Hardware22 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail18 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Windows Server
In-Place Upgrade von Windows Server 2008 R2 Datacenter zu Windows Server 2016 Datacenter (Zwischenschritt über 2012 R2)
gelöst Frage von TowerpleaseWindows Server16 Kommentare

Hallo Administratoren, Wir haben uns vor ein paar Monaten Windows Server 2016 Datacenter Lizenzen gekauft und wollen nun unsere ...

Windows 7
Mit gpedit gesetzte Richtlinien in rsop.msc nicht definiert und ausgegraut
gelöst Frage von 137006Windows 715 Kommentare

Hallo zusammen, anfangs verweise ich fairerweise daruf dass ich dieses Thema bereits im Forum angeschnitten habe, nachdem ich hier ...