这会有点复杂。但我会尝试解释我正在尝试做的事情。
我在数据库中有一个表,如下所示:
表 - 条目
ID | User | Address | Workflow | Audit Date |
1 | Tim | 123 | 10 p/w | 22/2/2013 |
2 | Bob | 222 | 20 p/w | 22/2/2013 |
现在在相应的表格中,我有图片:
表 - 图片
ID | JobNo | User | ImagePath | ImageName |
52 | 1 | Tim | /1.jpg | /2.jpg |
53 | 1 | Tim | /3.jpg | /4.jpg |
现在 Pictures.Jobno 对应 Entries.ID
好吧,我所追求的是,当相关的 jobNo 有超过 2 个图像条目时,列出表 Entries 中的所有条目。如果它有 1 个或更少,我想忽略列表。
所以目前我可以通过php调用这样的条目:
function getAllEntries() {
$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
if (!($query = $mysqli->prepare("SELECT * FROM Entries
ORDER BY Date DESC"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
if (!$query->execute()) {
echo "Execute failed: (" . $query->errno . ") " . $query->error;
}
$query->bind_result($ID, $User, $Address, $Workflow, $Audit);
while ($query->fetch()) {
//Echo each entry here
}
$query->close();
$mysqli->close();
}
我的问题是,我该如何合并我想做的事情?我想说:
选择所有条目,其中表 Pictures 中有 2 个或更多图像对应于 Entries 表中的作业编号/id 比较。
我确信这是可行的。但我想不出 sql 语句或如何将它正确绑定在准备好的语句中
SELECT * FROM Entries, Pictures, Where Pictures.Jobno = ID.Entries AND(图片中的行数)>= 2。
或者其他的东西?这只是一个 SQL 问题吗?或者我是否需要一个 if 语句并运行一个单独的 SQL 查询。
恐怕我是用 php 和 sql 自学的 - 所以我不太知道如何自己解决这个问题。