gpt4 book ai didi

php mysql 选择列并与不同表中的3个值进行比较

转载 作者:行者123 更新时间:2023-11-30 00:33:09 26 4
gpt4 key购买 nike

我有 4 个 mysql 表保存相互关联的数据

  • 玩家表
  • 参与表
  • 酒店表
  • 预订表

我正在尝试检索玩家的预订,请记住,有些房间可能有 2 个同伴,有些则没有

MYSQL表的物理设计是这样构造的

玩家表

  • 玩家ID
  • 玩家全名
  • 玩家国家ID

参与表

  • p_id
  • 冠军ID
  • 玩家ID
  • 国家/地区 ID
  • 状态
  • 预订状态

酒店表

  • 酒店ID
  • 酒店名称
  • 冠军ID

预订

  • b_ID
  • player1_id
  • player2_id
  • 酒店ID
  • 到达时间

我想要做的是选择所有预订并将它们列在一个表格中,该表格可以显示球员,1号和2号。

我正在使用此查询来获取结果:

    SELECT bookingsTable.*, playersTable.*, participantsTable.*, hotelsTable.* 
FROM bookingsTable
LEFT JOIN participationTable
ON bookings.player1_id= participants.p_id
LEFT JOIN playersTable ON participants.playerID = players.playerID
LEFT JOIN hotelsTable ON bookings.hotelId = hotels.hotelId

我只得到一个玩家,所以我添加了另一个选择player2_id的查询,但是在循环结果时,我无法让它正常工作,但我可以获取player2_id编号而不是名称。

这是我的 PHP 代码,它加载结果,我们始终感谢您的帮助。

<?php do { ?>
<tr>
<td><?php echo $row_booking_retrival['id']; ?></td>
<td><?php echo $row_booking_retrival['playerFullname']; ?></td>
<td><?php echo $row_booking_retrival['playerFullname']; ?></td>
<td><?php echo $row_booking_retrival['hotelName']; ?></td>
<td><?php echo $row_booking_retrival['arrivalDate']; ?></td>
<td><?php echo $row_booking_retrival['arrivalTime']; ?></td>
<td><?php echo $row_booking_retrival['departureDate']; ?></td>
<td><?php echo $row_booking_retrival['departureTime']; ?></td>
<td><?php echo $row_booking_retrival['Notes']; ?></td>
</tr>
<?php } while ($row_booking_retrival = mysql_fetch_assoc($booking_retrival)); ?>

提前致谢。

在此链接中查找物理设计和预期结果。

http://s18.postimg.org/gjsx4frfd/example.jpg

最佳答案

根据您的表格数据和图像中的预期结果,您正在寻找类似的查询

SELECT 
b.b_id as BookingID,
p1.fullname as player1full,
p2.fullname as player2full,
h.hotelName as hotelname,
b.arrival as arrivalDate
FROM
bookingsTable b
LEFT JOIN
participationTable pT1 ON b.player1 = pT1.p_id
LEFT JOIN
participationTable pT2 ON b.player2 = pT2.p_id
LEFT JOIN
playersTable p1 ON pT1.playerID = p1.playerID
LEFT JOIN
playersTable p2 ON pT2.playerID = p2.playerID
LEFT JOIN
hotelsTable h ON b.hotelid = h.hotelId

然后返回结果 - enter image description here

SQL fiddle - http://sqlfiddle.com/#!2/68cd27/2

关于php mysql 选择列并与不同表中的3个值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com