MyPHP和SQL基于其他人创建新表

时间:2016-11-20 07:11:13

标签: mysql

我有三张桌子; 表1(约会),其中包含YYYY-MM-DD HH:MM:SS格式,提供商ID,客户ID和服务ID的约会开始和结束时间。 表2(用户)包含提供者和客户ID以及名/姓。 表3(服务)包含服务ID,服务名称和服务描述。

我需要创建一个第四个表,名为display,,它将以HH:MM格式显示提供者名称,客户端名称,服务名称以及开始和结束时间。

我尝试使用谷歌搜索联接,但我似乎没有到达任何地方。 我正在使用w3schools的简单脚本,如下:

<?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();
?> 

2 个答案:

答案 0 :(得分:0)

在这种情况下,不要创建表,因为您只想组合来自各种表的数据。只需查询或创建view

在查询中,您需要告诉mysql如何使用on子句连接表。我将向您展示如何加入2个表格,剩下的由您决定:

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

答案 1 :(得分:-1)

我假设以下表格:

  

用户(ProviderID,CustomerID,ProviderName,CustomerName)
  服务(ServiceID,ServiceName,ServiceDescr)
  约会(StartTime,EndTime,ProviderID,CustomerID,ServiceID)

这样的事情能为你效劳吗?

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