2016-04-12 16 views
0

Ich habe Daten in zwei verschiedenen Tabellen gespeichert, die "Beiträge" und "Kommentare" genannt werden. Jetzt verwende ich zwei mysqli_query.Mysqli wählen aus zwei Tabellen

$q = mysqli_query($db,"SELECT * FROM posts WHERE username='$username'"); 
    $q = mysqli_query($db,"SELECT * FROM comments WHERE username='$username'"); 

Kann ich dies mit nur einer mysqli_query oder mit 3 Tabellen machen?

+1

Suchen Sie nur nach dem Schlüsselwort 'JOIN'? Außerdem sieht das wie eine SQL-Injection-Schwachstelle aus, die Sie dort haben. – David

+1

Zeigen Sie uns das DB-Schema und das erwartete Ergebnis. \t Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie Ihre Fragequalität verbessern und bessere Antworten erhalten. –

Antwort

1

Sie können einfach beide Tabellen beitreten:

$q = mysqli_query($db,"SELECT * FROM posts 
LEFT JOIN comments ON comments.username=posts.username 
WHERE comments.username='$username'"); 

aber es sieht aus wie Sie nicht IDs verwenden. Ich empfehle Ihnen, ID-Auto-Inkrement-Felder zu erstellen, um die Beziehung zwischen den Tabellen zu erstellen. Wenn Sie nicht verstehen, was ich meine, versuchen Sie, einem Tutorial zu folgen, und in einem oder zwei von ihnen würden Sie mehr gelernt haben, als einfach nur in das Coding zu springen und zu versuchen, zu verstehen, wie sie arbeiten, ohne zu wissen, ob Sie es sind es richtig machen.

+0

link Join mit 'where' über der gleichen Tabelle wird innerer Join :) jedoch links Join ist hier nicht notwendig, innere Join ist die richtige Join in diesem Fall. – mitkosoft

+0

@mitkosoft, stimmt über die Joins. (Ich sollte schnell antworten :) Mit den Informationen, die er teilte, können wir nicht viel tun, um den besten Weg zu beraten. Ich wollte es nur mit einer Abfrage zeigen, aber mein Hauptziel war, ihm zu empfehlen, ein wenig mehr über DBs und SQL zu lernen, da es keinen Sinn macht, große Abfragen zu erstellen, wenn die DB-Tabellen, Felder und Beziehungen nicht gut strukturiert sind. – BeoWulf

Verwandte Themen