2012-01-03 104 views
0

我对此感到困惑。我搜查了互联网,它仍然令我困惑。我有以下表格:INNER JOIN语句中的歧义列

会议:meeting_idtitlechairmansecretaryoccurances
客房:room_idroomdatetimemeeting_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>"; 


?> 

它出来,出现以下错误信息:

列“MEETING_ID”在条款不明确

我想显示所有来自会议桌的字段,显然只有房间,日期和时间。

我该如何解决这个问题?

回答

1

您需要定义要从哪个表中选择meeting_id

例如

`SELECT * FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id` 
+0

感谢队友,它工作:) – user1114080 2012-01-03 22:38:44

2

你需要与他们的表名加入前缀两个列,即

FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id 

错误消息解释该问题很清楚,实际上是:只要你指定其名称存在于多个表的列,你必须明确你的意思是哪个表的列。

0

该错误消息指出该MEETING_ID是模糊的,所以你需要指定要约束为MEETING_ID哪个表。

SELECT * FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id 
0
mysql_query("SELECT * FROM Meetings INNER JOIN Rooms ON Meetings.meeting_id = Rooms.meeting_id") 

当列名于join列一样,你必须明确地提到属于特定表的列。