Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datenbankabfrage 2er Tabellen wenn diese fast gleich sind

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Datenbankabfrage 2er Tabellen wenn diese fast gleich sind

    Hallo,

    ich habe 2 Tabellen
    Tabelle a mit ort und titel
    Tabelle b mit ort und suche

    Ich möchte jetzt eine Ausgabe der Tabelle b haben, wenn a.Ort absolut identisch ist mit b.Ort und wenn b.Suche fast gleich ist (so wie Like a.Titel% ) wie der a.Titel

    Ich hoffe Ihr könnt mir helfen
    Vielen Dank schon mal
    Gruß Karla

  • #2
    Das ist ja ein bisschen sehr vage.
    (so wie Like a.Titel% )
    Was heißt "so wie"? Dann machs doch so.
    Und das andere ist ein simpler JOIN den du brauchst. http://www.peterkropff.de/site/mysql/joins.htm
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      so wie... geht leider nicht Ich bekomme keine Ausgabe...
      Da ich noch eine relative Anfängering bin würde ich mich freuen wenn man mir Beispielcodes zeigen würde.

      Kommentar


      • #4
        Wenn du deine Abfrage zeigst finden wir den Fehler sicher
        [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
        [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

        Kommentar


        • #5
          Ich hatte so angefangen:

          PHP-Code:
           $query "SELECT a.*, b.* FROM tabelle1 b, tabelle2 a Where b.ablauf >= '".$jetzt."' AND b.ort LIKE 'a.ort%'  AND b.titel LIKE 'a.suche%' Order by a.datum DESC".$limit_str
          Danke

          Kommentar


          • #6
            Kann mir keiner helfen?

            Ich möchte das Problem vielleicht noch mal anders verdeutlichen.

            Tabelle a
            a_id| ort | thema
            ---------------------------
            1 | Bonn | Auto
            2 | Köln | Bus

            Tabelle b
            b_id| ort | titel
            ---------------------------
            1 | Bonn | Autobus
            1 | Pech | Fahrrad


            Ich möchte jetzt folgende Ausgabe erzielen.
            Zeige mir alle Datensätze an, dessen Ort identisch ist und dessen Thema und Titel sich ähneln...
            Also Auto aus Tabelle a ähnelt Autobus aus Tabelle b.
            Ich kenne soetwas zu Beispiel als Where titel LIKE 'thema%'
            Das funktioniert aber so nicht bei mir.

            Vielen Dank für eure Unterstützung

            Kommentar


            • #7
              Zitat von karla31 Beitrag anzeigen
              Ich bekomme keine Ausgabe...
              ... wird in den seltensten Fällen stimmen. Du hast bislang nicht geschrieben, mit welchem DBMS du arbeitest. Sollte es sich im MySQL drehen, dann sei dir HeidiSQL ans Herz gelegt.

              PHP-Code:
              SELECT
                  a
              .*, b.*
              FROM
                  tabelle1 b
              ,
                  
              tabelle2 a # 3
              WHERE
                  b
              .ablauf >= '{$jetzt}' # 1
                  
              AND
                  
              b.ort LIKE 'a.ort%' # 2
                  
              AND
                  
              b.titel LIKE 'a.suche%' # 2
              ORDER BY
                  a
              .datum DESC
              {$limit_str}; # 1 
              1. $jetzt und $limit_str sollten nicht auf diese Weise in eine Abfrage eingehängt werden. Schau dir mal dieses Thema an

              2. Das wird wahrscheinlich so nicht funktionieren. Abhängig davon, was du überhaupt vor hast, könnte die nächstliegende Möglichkeit so aussehen: b.ort LIKE CONCAT(a.ort, '%')

              3. Besser du arbeitest mit Joins. Die sind expliziter und verbrauchen beim Berechnen nicht so viel Arbeitsspeicher.

              Kommentar


              • #8
                Das klappt SUPER
                Vielen Dank

                Super erklärt mit dem Beispiel....

                DANKE

                Kommentar

                Lädt...
                X