2016-11-20 3 views
0

Ich habe drei Tabellen; Tabelle 1 (Termine), die die Start- und Endzeit des Termins im Format JJJJ-MM-TT HH: MM: SS, Provider-ID, Kunden-ID und Service-ID enthält. Tabelle 2 (Benutzer) enthält sowohl Anbieter- und Kunden-IDs als auch Vor-/Nachnamen. Tabelle 3 (Dienste) enthält die Dienst-ID, den Dienstnamen und die Dienstbeschreibung.MyPHP und SQL erstellen eine neue Tabelle basierend auf anderen

Ich muss eine vierte Tabelle erstellen, die Anzeige, genannt wird, die den Provider-Namen, den Client-Namen, den Dienstnamen und die Start- und Endzeiten im HH: MM-Format anzeigen wird.

Ich habe versucht, googeln Joins, aber ich glaube nicht, irgendwo zu bekommen. Ich verwende ein einfaches Skript aus w3schools unter:

<?php 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * FROM ea_appointments INNER JOIN ea_services"; 

$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "Start: " . $row["start_datetime"]. "End: " . $row["end_datetime"]. " - Provider: " . $row["id_users_provider"]. " - Customer: " . $row["id_users_customer"]. " - Service: " . $row["id_services"]."<br>"; 
    } 
} else { 
    echo "0 appointments"; 
} 
$conn->close(); 
?> 
+0

Ihnen fehlen die Join-Bedingungen ('On'-Klausel). – Shadow

+0

Können Sie bitte Ihr Tabellenschema mit einigen Beispieldaten teilen? – Faisal

Antwort

-1

ich die folgenden Tabellen gehe mal davon aus:

Benutzer (ProviderID, CustomerID, Provider, Kundenname)
Dienste (ServiceID, Servicename, ServiceDescr)
Termine (Starttime, EndTime, ProviderID, CustomerID, ServiceID)

Könnte so so etwas funktioniert für dich?

select ProviderName, CustomerName, ServiceName, StartTime, EndTime 
from appointments as a join users as u join services as s 
where a.CustomerID = u.CustomerID 
    and a.ProviderID = u.ProviderID 
    and a.ServiceID = s.ServiceID 
0

In diesem Fall erstellen Sie keine Tabelle, da Sie nur Daten aus verschiedenen Tabellen kombinieren möchten. Haben Sie einfach eine Abfrage oder erstellen Sie eine view.

In der Abfrage müssen Sie mysql sagen, wie Sie Ihre Tabellen mit der on Klausel verbinden. Ich zeige Ihnen, wie Sie 2 Tische beitreten können, der Rest bleibt Ihnen überlassen:

SELECT * 
FROM ea_appointments a 
INNER JOIN ea_services s on a.serviceid=s.serviceid 
Verwandte Themen