2014-09-22 65 views
0

我有一個主題和一個部門表,每個主題都與部門表相關聯。我正在嘗試選擇包括部門名稱在內的所有主題。代碼波紋管工作完美,但只顯示兩個記錄。任何幫助將不勝感激Inner Join只從mysql中選擇兩條記錄

//Select statement 
$selects=$connection->query("SELECT 
subjects.id 
, subjects.name 
, subjects.related_to 
, subjects.related_to_sem 
, departments.dept 
FROM subjects 
INNER JOIN departments 
ON subjects.related_to = departments.dep_id"); 

<table class="table table-striped table-bordered bootstrap-datatable datatable"> 
<thead> 
<tr> 
<th>Sub Id</th> 
<th>Subject Name</th> 
<th>Related to Department</th> 
<th>Related to Semester</th> 
<th>Actions</th> 
</tr> 
</thead> 
<tbody> 
<?php 
while($result=$select->fetch_assoc()) { 
?> 
<tr> 
    <td><?php echo $result['id']; ?></td> 
    <td class="center"><?php echo $result['name']; ?></td> 
    <td class="center"><?php echo $result['dept']; ?></td> 
<td class="center"><?php echo $result['related_to_sem']; ?></td> 
<td class="center"> 
<a class="btn btn-info" href="#"> 
<i class="icon-edit icon-white"></i> 
Edit            
</a> 
<a class="btn btn-danger" href="#"> 
<i class="icon-trash icon-white"></i> 
Delete 
</a> 
</td> 
</tr> 
<?php } ?> 
</tbody> 
</table> 
+0

變化'inner'到'如果要顯示與部門相關或不與部門相關的所有主題 – 2014-09-22 06:49:34

+0

如果從屬表中只有兩個記錄具有外鍵進入主表,則只會返回兩行。你需要檢查你的數據的有效性。另外,您可能需要考慮在從屬表上使用外鍵約束(如果您使用的是innoDB),以防止從屬表中的記錄指向主表中不存在的記錄。 – GordonM 2014-09-22 06:57:04

+0

爲什麼內部連接不顯示所有記錄?任何建議 – user3127648 2014-09-22 06:59:53

回答

0
select 

subjects.id,subjects.name, 
subjects.related_to, 
subjects.related_to_sem, 
departments.dept 

from 

subjects 

LEFT OUTER JOIN departments ON subjects.id=departments.dep_id 
+0

謝謝,但使用此我不會能夠選擇部門名稱在我看來。 – user3127648 2014-09-22 07:14:09

+0

請給我看bd的表格 – 2014-09-22 07:17:31

0

請嘗試以下方法。我想你可能已經用在連接條件錯字段:

SELECT 
     subjects.id 
    , subjects.name 
    , subjects.related_to 
    , subjects.related_to_sem 
    , departments.dept 
FROM subjects 
     INNER JOIN departments 
        /* ON subjects.id = departments.dep_id */ 
        ON subjects.dep_id = departments.id 

A「外鍵」的科目表部門更容易被subjects.dep_id

+0

謝謝非常非常簡短並且對答案 – user3127648 2014-09-22 07:23:20

+0

沒有問題,這對所有有關的人都有幫助勾選答案,這向其他讀者指出了答案是(是) – 2014-09-22 08:18:29