0
好家伙我有这个问题的表是:MySQL的左连接返回所有匹配的行除了第一个匹配行
images:
id || path_id || name
1 1 example1.jpg
2 1 example2.jpg
3 1 example3.jpg
4 2 example4.jpg
path:
id || folder_path
1 "./...."
2 "./...."
查询是这样的:
$query="SELECT images.name,path.folder_path FROM images
LEFT JOIN
path ON path.id=images.path_id
WHERE path.id=?";
让说的?
是1
。这将返回除匹配example1.jpg
的第一张图片之外的所有图片。如果我把example2.jpg
作为第一排,那么它将跳过example2.jpg
,它会给我example1.jpg
。为什么??我想要的是具有特定path_id +该特定id的folder_path的所有图片。 整个查询。
$query="SELECT images.name,path.folder_path FROM images
LEFT JOIN
path ON path.id=images.path_id
WHERE path.id=?";
if($stmt= $mysqli->prepare($query))
{
for($i=0;$i<count($result);$i++)
{
$bind_param= $result[$i];
/*bind parameters*/
$stmt->bind_param("s",$bind_param);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($images,$path);
$stmt->fetch();
}
$i=0;
while($stmt->fetch()){
printf("%d) %s PATH:%s \n",$i,$images,$path);
$i++;
}
$stmt->close();.
$ result是id = 1。当我尝试打印数据时,它只打印我期望的3张图像中的2张和正确的folder_path。
你能告诉我们你的预期产出吗? –
我想:example1.jpg,example2.jpg,example3.jpg +“。/ ....”(id = 1) 我得到:example2.jpg,example3.jpg +“。/ ....” (的id = 1) –
更改WHERE到** WHERE image.id =?“; ** –