これは少し複雑になります。しかし、私がやろうとしていることを説明しようとします。
次のように、データベースにテーブルがあります。
表 - エントリ
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 には、Entries テーブルのジョブ番号/ID 比較に対応する 2 つ以上の画像があります。
私はこれが実行可能だと確信しています。しかし、SQLステートメントや、それを準備済みステートメントに正しくバインドする方法が思い浮かびません
SELECT * FROM Entries, Pictures, Where Pictures.Jobno = ID.Entries AND (写真の行数) >= 2.
か何か?これは単なるSQLの問題ですか?または、if ステートメントが必要で、別の SQL クエリを実行する必要がありますか。
私は php と sql を独学で学んでいるので、自分で解決する方法がよくわかりません。