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)
spezielle Abfrage (oder auch nicht) 2er Tabellen einer Mysql-DB [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
spezielle Abfrage (oder auch nicht) 2er Tabellen einer Mysql-DB


 
Ralf
30-08-2001, 22:18 
 
Hallo,

ich habe 2 Tabellen in einer Mysql-Datenbank. Beide Tabellen haben kein identisches Feld wie z.B. das ID-Feld, aber dafür hat Tabelle 1 ein Feld <Nachname> mit einzelnen Nachnamen wie z.B. Müller und Tabelle 2 hat ein Feld Angebote, wobei jeder Datensatz in diesem Feld mehrere Namenseinträge hat, z.B. Müller, Maier, Eiser. Wie erreiche ich nun eine Abfrage der Form
select tabelle1.*, tabelle2.* from tabelle1, tabelle2 where
tabelle1.Nachname = %tabelle2.Angebote%
d.h. ich möchte alle Datensätze wo der Nachname in Tabelle 1 im Feld Angebote der Tabelle 2 auch mitvorkommt.
wie gesagt, tabelle 1 hat in Feld Nachname z.B. als Eintrag Maier, aber Tabelle 2 hat in Feld Angebote z.B. als Eintrag Müller, Eiser,Maier.

Bin für jeden Tip dankbar

Gruß Ralf

 
JoelH
30-08-2001, 23:08 
 
du warst schon auf der richtigen spur, da muss hin WHERE tabelle1.nachname = "Maier" AND tabelle2.angebote like "%Maier%" . Das sollte funzen.

 
Ralf
31-08-2001, 09:47 
 
Hallo Joel,

leider habe ich das nicht ganz so gemeint, sondern:
ich möchte alle Datensätze haben, wo der Nachname im Feld
Nachname der Tabelle1 auch im Feld Angebot der Tabelle 2
vorkommt, wobei aber dieses Feld Angebot mehrere durch Komma getrennte Namen enthält.

(ich glaub jetzt hab ich mich etwas besser ausgedrückt :-))

es geht also nicht nur um einen ganz bestimmten Namen

 
JoelH
31-08-2001, 11:26 
 
ja und ?? Das war nur ein beispiel, für Maier kannst du beliebige Namen einsetzen bzw. halt mit einer Variable arbeiten , okay hier mit einer Variable der ganze query :


$db = mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname,$db);
$derzusuchendenamestring = "Müller";
$query = "SELECT tabelle1.*, tabelle2.* FROM tabelle1, tabelle2 WHERE tabelle11.nachname = \"".$derzusuchendenamestring."\" AND tabelle2.angebot like \"%".$derzusuchendenamestring."%\"";
$result = mysql_query($query,$db);
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
// und hier gibst du die Daten aus
}

 
Titus
02-09-2001, 14:27 
 
WHERE tabelle2.angebote like concat ('%',tabelle1.nachname,'%')

 
JoelH
02-09-2001, 19:45 
 
Also ich muss sagen du bist ein wahrer SQL Optimierer :) Willste nicht mal die Quellcodes unseres Boards durchgehen :D :D Da gibts sicher x Optimiermöglichkeiten :(

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:42 Uhr.