1

我现在的代码是这个

$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
4

3 回答 3

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
于 2013-04-16T21:29:41.193 回答
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。

于 2013-04-16T21:35:15.293 回答
0

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

于 2013-04-16T21:19:31.237 回答