我对此感到困惑。我在互联网上搜索过,但仍然让我很困惑。我有以下表格:
会议:meeting_id
,title
,chairman
,secretary
,occurances
房间:room_id
,room
,date
,time
,meeting_id
我希望所有内容都显示在桌面上。我的PHP如下:
<?php
$result = mysql_query("SELECT * FROM Meetings INNER JOIN Rooms ON meeting_id = Rooms.meeting_id")
or die(mysql_error()); ;
if (mysql_num_rows($result) == 0) {
echo 'There Arent Any Meetings Setup Yet';
} else {
echo "<table border='0'><table border width=100%><tr><th>Title</th><th>Chairperson</th><th>Secretary</th><th>Terms of Reference</th><th>Occurances</th><th>Room</th><th>Date</th><th>Time</th>";
while($info = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><br/>" . $info['title']." </td>";
echo "<td><br/>" . $info['chairperson']. "</td>";
echo "<td><br/>" . $info['secretary']."</td>";
echo "<td><br/>" . $info['tof']. "</td>";
echo "<td><br/>" . $info['occurances']. "</td>";
echo "<td><br/>" . $info['room']. "</td>";
echo "<td><br/>" . $info['date']. "</td>";
echo "<td><br/>" . $info['time']. "</td>";
}
}
echo "</tr>";
echo "</table>";
?>
出现以下错误消息:
列&#39; meeting_id&#39;在on子句中含糊不清
我正在尝试显示会议桌中的所有字段,显然只显示房间,日期和时间。
我该如何解决这个问题?
答案 0 :(得分:2)
您需要在联接中将两个列的前缀加上其表名,即
FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id
错误消息非常清楚地解释了问题,实际上:每当您指定一个名称存在于多个表中的列时,您必须明确指出您所指的表的列。
答案 1 :(得分:1)
您需要定义要从中选择的meeting_id
表。
e.g。
`SELECT * FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id`
答案 2 :(得分:0)
错误消息指出meeting_id不明确,因此您需要指定要约束为meeting_id的表。
SELECT * FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id
答案 3 :(得分:0)
mysql_query("SELECT * FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id")
如果join
列上的列名相同,则必须明确提及属于特定表的列。