對不清楚的標題感到抱歉,但我不能提出任何更好的。如何通過MySQL中的外鍵鏈接檢索某些值?
我的困境是:
我在我的數據庫中的一個InnoDB表名爲 「會議」 具有以下結構:
- MEETING_ID(主鍵,AUTO_INCREMENT)
- user1_id(外鍵指向一個名爲「users」的表中的user_id)
- user2_id(外鍵指向一個名爲「users」的表中的user_id)
- time(type DATETIME)
- 位置(類型VARCHAR(200))
表 「用戶」 是基本的和看起來像這樣:
- USER_ID(主鍵,AUTO_INCREMENT)
- first_name的(類型VARCHAR( 30))
- 姓氏(類型VARCHAR(30))
我與目的PHP文件簡單地首席T出了會議,例如:的描述
你救了以下會議信息:
用戶1 |用戶2 |時間&日期|會議地點
John Doe | Jane Doe | 2010-10-10 10:10:10 |紐約
現在,我只想使用會議ID,調用我的數據庫(只有「會議」表),並能夠獲得user1和user2的first_name和last_name。
現在,我不工作的代碼如下所示:
$query = "SELECT * FROM meetings WHERE meeting_id = " . $mid;
$data = mysqli_query($dbc, $query);
$row = mysqli_fetch_array($data); // ANY CHANGES HERE?
...
echo '<p>You saved the following meeting information::</p>';
echo '<table>';
echo '<tr><th>User 1</th><th>User 2</th><th>Time & Date</th><th>Meeting location</th></tr>';
echo '<td>' . $row['user1_id']['first_name'] . ' ' . $row['user1_id']['last_name'] . '</td>'; // NON-WORKING
echo '<td>' . $row['user2_id']['first_name'] . ' ' . $row['user2_id']['last_name'] . '</td>'; // NON-WORKING
echo '<td>' . $row['date_time'] . '</td>';
echo '<td>' . $row['location'] . '</td>';
echo '</table>';
...
(如何)我可以檢索未做單獨調用到「用戶」表中的FIRST_NAME /姓氏鏈接?當我檢查phpMyAdmin時,InnoDB外鍵鏈接似乎工作正常。提前謝謝了!
非常感謝精細查詢,它確實有幫助。關於你對數據庫設計的其他評論,不要擔心:在我的例子中,我的名字只是'簡化'的變量名,我的數據庫看起來並不像這樣。 :)不過,再次感謝! – BeeDog 2010-11-16 08:19:00
我現在在腳本中使用$ row ['userX.first_name'],但它根本不起作用。這裏是我的查詢字符串(用userX取代醫生/病人'更好'的抽象): --- $ query =「SELECT patient.first_name,patient.last_name,doctor.first_name,doctor.last_name,appointmentments.date_time,appointment .description從約會JOIN用戶患者ON約會.patient_app_id = patient.user_id加入用戶醫生ON約會.doctor_app_id = doctor.user_id WHERE約會ID =「。 $援助; --- echo''。 $ row ['patient.first_name']。 ''。 $ row ['patient.last_name']。 ''; – BeeDog 2010-11-16 09:30:46
看上去'SELECT time,location,user1.first_name AS user1_first_name ...'更安全,後來引用爲'$ row ['user1_first_name']'或在您的病例中,等等...... – Unreason 2010-11-16 10:18:46