Schrift
[thread]3426[/thread]

MySQL Abfrage



<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
Tom
 2004-03-26 17:13
#31909 #31909
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Ich möchte in einer Datenbank mehrere Tabellen auf einen bestimmten Eintrag abfragen, wie muss ich das machen, bei einer Tabelle ist mir das klar aber mit mehreren habe ichs nicht hinbekommen.

Code: (dl )
my $sql = qq{SELECT * FROM topic WHERE name LIKE "$suchen" ORDER BY timestamp};


So klappt das nicht
Code: (dl )
my $sql = qq{SELECT * FROM topic WHERE name, ort LIKE "$suchen" ORDER BY timestamp};


Danke

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
renee
 2004-03-26 17:22
#31910 #31910
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Möchtest Du mehrere Tabellen oder mehrere Spalten überprüfen??

Bei mehreren Tabellen wird Dir wohl nichts anderes übrig bleiben, als mehrere Abfragen einzeln zu machen. bei mehreren Spalten sieht das wieder anders aus (Da war Dein Versuch relativ gut):
[sql]my $sql = qq{SELECT * FROM topic WHERE name LIKE "$suchen" OR ort LIKE "$suchen" ORDER BY timestamp};[/sql]
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Tom
 2004-03-26 17:30
#31911 #31911
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=renee,26.03.2004, 16:22]Möchtest Du mehrere Tabellen oder mehrere Spalten überprüfen??[/quote]
Tabellen

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Strat
 2004-03-27 02:37
#31912 #31912
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
da must du wohl zwei abfragen machen (nebenbei: platzhalter bei tabellennnamen funktionieren unter mysql nicht)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2004-03-27 12:49
#31913 #31913
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Habe ich ja gesagt, dass man Abfragen auf mehrere Tabellen nur über mehrere Abfragen realisieren kann... 8)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Tom
 2004-03-27 13:43
#31914 #31914
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Danke

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
Tom
 2004-03-27 19:42
#31915 #31915
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Jetzt habe ich noch eine Frage, ich habe in einem Buch gelesen wie man mehrere Suchbegriffe verknüpfen kann und die dann in die Abfrage einbaut.

Das ist folgender Code

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
my @wort = split (/\s+/, $suchen);
my $verkn = "AND"; # Standard-Verknüpfung
$verkn = "AND" if $auswahl eq "alle";
$verkn = "OR" if $auswahl eq "eins";

# pro wort ein test; test mit $verkn verbinden
# das ganze in Klammern

push (@bedingung,
"("
. join (" $verkn ",
("$select LIKE ?") x @wort)
. ")"
);
# Um die Worte Joker % rummachen
push (@platzhalterdaten, map { "%$_%" } @wort);

if (@bedingung) {
$where = "WHERE ". join (" AND ", @bedingung);
}
$where = "" unless $where;

$select = lc $select;
$sql = qq{SELECT * FROM event_topic $where ORDER BY time};

$sth->execute(@platzhalterdaten);


Jetzt ist meine Frage wie muss ich das ganze erweitern, dass ich auch mehrere Tabellen so automatisch verknüpfen kann?

Danke

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
renee
 2004-03-27 21:54
#31916 #31916
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Abfragen für mehrere Tabellen kannst Du z.B. so machen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
my @tables = qw(table1 table2 table3 table4);

foreach(@tables){
my $select = "SELECT * FROM $_ $where ORDER BY time;";
my $sth = $dbh->prepare($select);
$sth->execute();
while(my @array = $sth->fetchrow_array()){
print "@array";
}
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Tom
 2004-03-28 14:42
#31917 #31917
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=renee,27.03.2004, 20:54]Abfragen für mehrere Tabellen kannst Du z.B. so machen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
my @tables = qw(table1 table2 table3 table4);

foreach(@tables){
my $select = "SELECT * FROM $_ $where ORDER BY time;";
my $sth = $dbh->prepare($select);
$sth->execute();
while(my @array = $sth->fetchrow_array()){
print "@array";
}
}
[/quote]
Das passt aber nicht zu meinem oben genannten Code, denn wenn es mehrere Suchbegriffe gibt muss die WHERE-Klausel ja auch auf mehrere Tabellen passen. In meinem Code ist in der Variable $select der Tabellenname enthalten.

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
renee
 2004-03-28 15:07
#31918 #31918
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gib mal bitte konkrete Beispiele, wie die Tabellen aussehen, und wie gewünschte Ergebnisse aussehen... (Natürlich durch Dummy-Daten ersetzt)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2004-03-26 17:13.