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, 5631 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
Microsoft Office

Suchen mit 2 Werten (x,y) in einer Tabell - Bereich.vergleich gibt nur Wahr oder Falsch aus

gelöst Frage von ArafatMicrosoft Office2 Kommentare

Hallo Zusammen, ich suche in einem 2. Tabellenbatt nach über 2 Werte x und y nach einem 3. Wert. ...

Netzwerke

PfSense Konfiguration - 2 Netze - 2 DC - 2 Exchange

Frage von Jens1982Netzwerke16 Kommentare

Hallo Leute, ich hoffe ihr könnt mir hier weiterhelfen. Ich habe einen Kunden, der mit seinem bisherigen IT-Dienstleister sehr ...

Netzwerke

2 Leitungen und 2 Router

Frage von Jens1978Netzwerke6 Kommentare

Hallo. Hoffe ich bin hier in der richtigen Kategorie. Folgende Überlegung. Ich habe hier ein Netzwerk (LAN) mit mehreren ...

LAN, WAN, Wireless

2 Internetanbieter, 2 Häuser, 1 Richtfunkverbindung

Frage von h3rbiroLAN, WAN, Wireless5 Kommentare

Hallo erstmal. Ich glaub dass ich aufgrund der vielen Experten hier an der richtigen Adresse bin. Ich habe folgende ...

Neue Wissensbeiträge
Windows Server

Zähe Update-Installation auf Windows Server 2016

Information von kgborn vor 2 TagenWindows Server4 Kommentare

Mir sind in der Vergangenheit immer wieder Beschwerden von Admins unter die Augen gekommen, die sich über die doch ...

Humor (lol)
Turnschuhe per Firmware lahmlegen
Information von Henere vor 2 TagenHumor (lol)8 Kommentare

Und was kommt demnächst ? Bekomme ich kein Klopapier mehr, weil der Spender einem DDOS unterliegt ? :-) Ich ...

Sicherheit

Sicherheitsrisiko in WinRAR und Co. durch Schwachstelle in UNACEV2.DLL

Information von kgborn vor 2 TagenSicherheit

In der seit 2005 nicht mehr aktualisierten Bibliothek UNACEV2.DLL gibt es eine Path-Traversal-Schwachstelle. Diese ermöglicht es, bei ACE-Archiven Dateien ...

Internet

CDU Propaganda: Urheberschutz im Internet - Ende des digitalen Wild-West

Information von Frank vor 3 TagenInternet6 Kommentare

Hallo Administratoren, aus einem Kommentar heraus habe ich folgenden Beiträge von Herr Sven Schulze und Axel Voss (beide CDU ...

Heiß diskutierte Inhalte
Windows Tools
Dateiname Automatisch auf PDF Klartext oder als Barcode abdrucken
Frage von spongebob24Windows Tools29 Kommentare

Hallo Zusammen, habe eine tolle Anforderung bekommen. Ich sollte auf mehrere PDF Dateien Automatisch einen Stempel anbringen lassen. Toll ...

Internet
SDSL oder ADSL - Preis-Leistungs-Verhältnis
Frage von ZeppelinInternet22 Kommentare

Wehrte Community, der Unterschied dieser beiden Techniken ist recht einfach erklärt. Das S, steht für Synchron (Gleich) und das ...

Microsoft Office
MicroSoft und seine Lizenzen
Frage von ZeppelinMicrosoft Office20 Kommentare

Wehrte Community, ich wende mich an die Community weil MicroSoft dazu keine Stellung nehmen möchte. Ich öffne mein Web-Browser ...

Hyper-V
Setup zu 2019 Hyper-V Coreserver gesucht
Frage von DerWoWussteHyper-V17 Kommentare

Moin. Ich habe unter die Möglichkeit, Hyper-V-Server 2012 R2 runterzuladen! Tolle Wurst, Microsoft! Nehme ich eine andere Quelle, nämlich ...