SQL查询从两个表中获取数据

时间:2013-04-16 21:15:15

标签: php mysql sql join

我的代码现在就是这个

$extract = mysqli_query($dbc, "SELECT * FROM items");
$numrows = mysqli_num_rows($extract);
while($row = mysqli_fetch_assoc($extract)) {
    $id = $row['i_id'];
    $iname = $row['i_name'];    
    echo "<tr><td><a href='capture.php?item_id=$id'>$iname</a></td><td>Incomplete</td></tr>";
}

我想要做的是检查项目是否已经完成。 我有一个单独的表包含信息,例如说项目1已经完成然后我希望能够将我的回声改为:

 echo "<tr><td>$iname</td><td>Complete!</td></tr>";

我将如何做到这一点?我是否需要使用某种形式的连接声明?

我希望能够显示表中的所有项目但不能重复它们我最初认为回声上的if语句是否完成,然后执行此操作

以下是两个表

Items                      item_collection
------                     ---------------
i_id                       i_id
i_name                     complete
                           caption
                           image
                           c_id
                           g_id

3 个答案:

答案 0 :(得分:2)

您可以使用这样的连接条件(假设complete是varchar字段)

SELECT a.i_id, a.i_name,
CASE WHEN i_status = '1' THEN 'Complete!' ELSE 'Incomplete' END AS complete_status
FROM items a 
LEFT OUTER JOIN item_collection b ON a.i_id = b.i_id

答案 1 :(得分:1)

select 
case 
  when ic.complete = 1 then 'Complete'   
  else 'Incomplete'
end as item_status
from items i
left join item_collection ic on i.i_id = ic.i_id
where i.i_name = 'your_item_name'

当项目完成时假设ic.complete = 1。

答案 2 :(得分:0)

SELECT * FROM table1 WHERE table1.id not within(SELECT Id FROM table2)