spezielle Abfrage (oder auch nicht) 2er Tabellen einer Mysql-DB

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • spezielle Abfrage (oder auch nicht) 2er Tabellen einer Mysql-DB

    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


  • #2
    du warst schon auf der richtigen spur, da muss hin WHERE tabelle1.nachname = "Maier" AND tabelle2.angebote like "%Maier%" . Das sollte funzen.

    Comment


    • #3
      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

      Comment


      • #4
        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 :

        Code:
        $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
        }

        Comment


        • #5
          WHERE tabelle2.angebote like concat ('%',tabelle1.nachname,'%')
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Comment


          • #6
            alter Optimierer

            Also ich muss sagen du bist ein wahrer SQL Optimierer Willste nicht mal die Quellcodes unseres Boards durchgehen Da gibts sicher x Optimiermöglichkeiten

            Comment

            Working...
            X