ich habe eine Fragen und zwar: Ich möchte in mehreren Tabellen nach einem String suchen.
Ich habe folgende Tabellen angelegt:
t_workstation mit den Attributen: id_workstation (PK), hersteller, lieferant, ipadresse, mitarbeiter, garantieende und hostnamen
t_server mit den Attributen: id_server (PK), hersteller, lieferant, ipadresse und hostnamenr, garantieende und hostnamen
t_notebook mit den Attributen: id_server, modell, hersteller, lieferant, ipadresse, mitarbeiter, garantieende und hostnamen
Ich habe nun ein einfaches Formular erstellt, welches dem Benutzer nach einem Suchwort fragt, zum Bespiel hostname. Dies würde dann in der Variablen $suchwort stehen.
Zur Frage: Ich möchte nun gerne in den o.g. Tabellen suchen, wo hostname = $suchwort ist. Als Ergebnis würde ich gerne nur die ids zurückgeliefert bekommen, wo die Bedingung zutrifft.
Ich habe leider keinen Ansatz und bin deshalb über jede Hilfe dankbar.
test=# create table bla1( id int, suche1 text, suche2 text);
CREATE TABLE
test=*# create table bla2( id int, suche1 text, suche2 text);
CREATE TABLE
test=*# copy bla1 from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1 foo bar
>> 2 bla fasel
>> \.
test=*# copy bla2 from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 11 test fertig
>> \.
test=*# commit;
COMMIT
test=# select 'bla1' as table, id from bla1 where suche1='foo' union all select 'bla2', id from bla2 where suche1='foo';
table | id
-------+----
bla1 | 1
(1 row)
test=*# select 'bla1' as table, id from bla1 where suche1='test' union all select 'bla2', id from bla2 where suche1='test';
table | id
-------+----
bla2 | 11
(1 row)
danke für deine schnelle Antwort. Leider verstehe ich die Syntax bzw. das vorgehen nicht so richtig. Kannst du das, bitte nur wenn es nicht zu viel Arbeit macht, mal auf meine Tabellen anwenden. Ich glaube dann habe ich eine bessere Chance es zu verstehen.
Das Anlegen der Tabellen und das Formluar sind kein Problem.
ich habe das nochmal ausprobiert. Leider bekam ich zuerst immer eine Fehlermeldung, dass die Syntax falsch ist.
Die Select Abfrage lautete dabei:
select 't_workstation' as table, id_workstation as ids from t_workstation
where hostname='test1' union all select 't_server', id_server from t_server
where hostname='test1';
Der Fehler ist eigentlich ganz einfach. Ich habe zum testen erstmal phpmyadmin verwendent und das, interpretiert das “table” nach “t_workstation as” so, als müsse eine Tabelle folgen.
Habe dies nun in
select 't_workstation' as tabelle, id_workstation as ids from t_workstation
where hostname='test1' union all select 't_server', id_server from t_server
where hostname='test1';