2012-01-03 4 views
0

Я смущаюсь этим. Я искал интернет, и это все еще меня путает. У меня есть следующие таблицы:Неоднозначная колонка в инструкции INNER JOIN

Meetings: 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>"; 


?> 

Он выходит со следующим сообщением об ошибке:

Column «MEETING_ID» в по статье неоднозначна

Я пытаюсь показать все полей из стола совещаний и, очевидно, комнаты, даты и времени.

Как исправить это?

ответ

1

Вам необходимо определить, какую таблицу вы хотите выбрать meeting_id.

например.

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

спасибо, он работал :) – user1114080

2

Вам нужно префикс как столбцов в соединении с их именами таблиц, т.е.

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

Сообщение об ошибке объясняет проблему совершенно ясно, на самом деле: всякий раз, когда вы указать столбец, имя которого существует в нескольких таблицах , вы должны указать, какой столбец таблицы вы имеете в виду.

0

В сообщении об ошибке указано, что 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 столбцов, вы должны явно указать те столбцы, относящиеся к конкретной таблице.

Смежные вопросы