首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP Mysql尝试从不同的表中提取多行(适用于2个表中的3行,但不适用于3个表中的4行)

PHP Mysql尝试从不同的表中提取多行(适用于2个表中的3行,但不适用于3个表中的4行)
EN

Stack Overflow用户
提问于 2011-03-31 08:24:10
回答 2查看 835关注 0票数 1

我正在尝试从数据库的不同表中提取多个行。

如果我只有两个表中的前3行,它可以很好地工作。只要我添加第三个表,并尝试拉出另一行,它就会断开!

最终,我要做的是提取图像,dayid,一个人的名字,然后是原因的名称。

原因和原因在同一个表中,人员的名字在表Pilot中,原因的名称在表Outfitday_id中。

由于某种原因,它将从表Outfitimage中拉出前两行(imageUrloutfitDay_id),然后从Pilot中拉出第三行(name),但如果我添加名称并尝试从Cause表中拉出它,则会失败。

代码语言:javascript
复制
$link = mysql_connect("host","user","pass");
if ($link) {
   mysql_selectdb("up",$link);  
   // Select records from the DB  
   $query  = "SELECT imageUrl,outfitDay_id,name,name FROM OutfitImage,Pilot,Cause ORDER BY Rand(" . date("Ymd") . ") LIMIT 1";
   $image = mysql_query($query);

   // Display records from the table  
   echo "";
   while ($row = mysql_fetch_array($image, MYSQL_NUM)) {
      echo "<IMAGE SOURCE='$row[0]'/><br>";
      echo "<div id='info'>Day $row[1] of ";
      echo "$row[2] Uniform Project for$row[3] </div>";
   }
   echo "";
} else {
    echo "Can't connect to the database!";
}
EN

Stack Overflow用户

回答已采纳

发布于 2011-03-31 08:39:18

这可能是因为name列是不明确的。我猜您在CausePilot (或其他表)中都有一个name列。MySQL无法猜测您要从哪个表中检索列值,因此将显示一个错误(字段列表中的列名不明确)。

确保使用表名作为列名的前缀,以消除歧义:

代码语言:javascript
复制
SELECT 
   imageUrl, outfitDay_id, Cause.name, Pilot.name 
FROM 
   OutfitImage, Pilot, Cause
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5494029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档