2017-10-11 3 views
0

Ich habe 2 Tabellen MOVIES und SHOWS.Abrufen von Daten aus mehreren Tabellen mysql php

MOVIES Tabellen enthält:

id, name, image, description. 

ZEIGT Tabelle enthält:

id, movieid, description. 

ich MySQL-Anweisung abzurufen Datensätze aus SHOWS Tabelle bin ausgeführt wird, bin ich alle Datensätze bekommen normalerweise. Wieder führe ich eine andere mysql-Anweisung aus, um ein Bild von der MOVIES-Tabelle basierend auf der Filmtabellen-ID zu erhalten, die ich von der ersten Abfrage erhalte. Gibt es eine einfache Möglichkeit, alle Datensätze aus SHOWS-Tabelle zusammen mit Filmabbild abrufen?

Dies sind meine Fragen:

$qry1 = mysql_query("SELECT * FROM shows WHERE id='1'"); 
$res = mysql_fetch_array($qry1); 
$movieid = $res['movieid']; 
$qry2 = mysql_query("SELECT image FROM movies WHERE id='$movieid'"); 
+0

bieten Abfrage in Frage –

+1

Hinweis sehen: 'INNER JOIN '. –

+0

Dies sind meine Abfragen $ qry1 = mysql_query (SELECT * FROM zeigt WHERE id = '1'); $ res = mysql_fetch_array ($ qry1); $ movietid = $ res ['movietid']; $ qry2 = mysql_query (WÄHLEN Sie das Bild aus Filmen WHERE id = '$ movietid'); –

Antwort

1
SELECT t1.id, t1.movieid, t1.description, t2.image FROM SHOWS as t1 
INNER JOIN 
MOVIES as t2 ON t1.id = t2.id 

Einige SQL-docs beitreten

oder Sie können versuchen, diese, ich war nicht sicher, ob Hexe-ID ist, von wo aus:

SELECT id, movieid, description, image FROM SHOWS 
INNER JOIN MOVIES 
ON id = movieid 

Einige Fremdschlüssel

0

Hier bin mit heraus schreibe verbinden Sie alle so Auswahlabfragen geschachtelt verwenden können

select movies.image from movies where movies.id in(Select shows.movieid form shows where shows.id= 1); 
0

Sie können gleichzeitig von einem Server Daten aus mehreren Tabellen abrufen. Es gibt viele Möglichkeiten, diese Operation zu erreichen, die join genannt wird. Einer der Möglichkeit wäre die LEFT JOIN so aussehen:

SELECT t1.field1, t1.field2,..., t2.field1, t2.field2, ..., t2.fieldn 
FROM table1 AS t2 
LEFT JOIN talble2 AS t2 ON t2.some_field = t1.anothed_filed 
WHERE some_condition 

In Ihrem Fall:

SELECT s.*, m.image 
FROM SHOWS AS s 
LEFT JOIN movies AS m ON s.movieid = m.id 
WHERE some_condition 

für weitere Informationen in der Dokumentation zu https://dev.mysql.com/doc/refman/5.7/en/join.html

Verwandte Themen