Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
1 Abfrage && 2 Tabellen ? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
1 Abfrage && 2 Tabellen ?


 
paddy
27-02-2002, 21:25 
 
Hallo !
Ist es eigentlich möglich 2 tabllen mit einer abfrage zu bearbeiten??
Zum beispiel möchte ich Tabelle1 und tablle2 nach dem wort "hallo" durchsuchen .

gehts ?

 
Sky
27-02-2002, 21:45 
 
select * from tabelle1,tabelle2 where tabelle1.feld='%hallo%' or tabelle2.feld='%hallo%'

 
paddy
27-02-2002, 21:50 
 
ohh ! so einfach ist das ? danke werde ich gleich mal probieren :)

 
MelloPie
28-02-2002, 12:14 
 
sorry aber ergibt das nicht ein karthesisches ProduKt???

 
Sky
28-02-2002, 13:02 
 
bitte?

 
MelloPie
28-02-2002, 13:51 
 
Nun eine Multiplikation der Ergebnismenge!
das heisst, wenn tabelle1.feld 30 Einträge hat und tabelle2.feld 20 dann bekommt man nicht 50 Datensätze als Resultset sondern ein Vielfaches dessen...

[Editiert von MelloPie am 28-02-2002 um 13:56]

 
paddy
28-02-2002, 13:56 
 
Mir gings ja auch nur ums Prinzip . Wollte nur wissen wie man das richtig schreibt - hat übrigens gefunzt danke!

 
Sky
28-02-2002, 14:17 
 
Original geschrieben von MelloPie
Nun eine Multiplikation der Ergebnismenge!
das heisst, wenn tabelle1.feld 30 Einträge hat und tabelle2.feld 20 dann bekommt man nicht 50 Datensätze als Resultset sondern ein Vielfaches dessen...

Nein.. Wie kommst du darauf?

 
MelloPie
28-02-2002, 14:29 
 
Original geschrieben von Sky
select * from tabelle1,tabelle2 where tabelle1.feld='%hallo%' or tabelle2.feld='%hallo%'

hast Du das mal ausprobiert?
dann werden die Ergebnisse doch nicht nach Tabelle1 und tabelle2 getrennt untereinander geschrieben sondern tabelle1.* neben tabelle2.* mit allen verknüpfungsmöglichkeiten...

 
paddy
28-02-2002, 18:45 
 
Folgendes Dazu : soweit geht's aber schwierig wirds erst wenn ich aus tabelle1 und aus tablle2 die anzahl der Datensätze raussuchen möchte bei denen die userid == 1 ist .
mit WHERE tabelle1.userid=1 AND tabelle2.userid=1 gehts nicht :( logisch

 
paddy
28-02-2002, 18:53 
 
SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.userid=1 OR tabelle2.userid=1 geht nicht -> obwohl die reale anzahl 5 ist bekomme ich als wert 12 zurück :?

 
paddy
28-02-2002, 18:55 
 
Original geschrieben von paddy
SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.userid=1 OR tabelle2.userid=1 geht nicht -> obwohl die reale anzahl 5 ist bekomme ich als wert 12 zurück :?

Das hat MelloPie wohl gemeint <--

 
Sky
28-02-2002, 20:02 
 
Der * dient eigentlich nur als Beispiel, die Felder sollten explizit benannt werden...

 
MelloPie
28-02-2002, 20:35 
 
eine Abfrage wie diese:

SELECT a.ID,a.name,a.vorname,b.name,b.strasse FROM a,b
WHERE a.name LIKE'$var' OR b.name LIKE '$var'

wird immer mutiple resultsets liefern.
Weil keine Beziehung gesetzt ist. das kann jeder mal ausprobieren. Das ergibt ein karthesisches produkt.
Wenn man 2 oder mehrere Tabellen ohne Beziehungen abfragt dannimmer nacheinander, dann erhält man für jede Tabelle eineigenes resultset.

 
paddy
28-02-2002, 20:51 
 
Wie kann man das nun realisieren ?
in Tabelle1 sind 4 Werte mit id=1
in Tabelle2 sind 3 Werte mit id=1

Wie komme ich nun auf 7 ?? muß ich für jede tabelle extra abfragen oder gehts auch mit einer WHERE ?

 
MelloPie
28-02-2002, 20:57 
 
zwei tabellen nacheinander abfragen...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:13 Uhr.