繁体   English   中英

SQL内部联接获取列中的所有数据

[英]SQL inner join getting all data in column

这是我第一次使用内部联接,所以我很困惑。

我有两张桌子。

第一个:(我已将详细信息舍去)

这是我的第一张桌子,叫做members

在此处输入图片说明

这是我的另一张称为捐款表。 来自成员的userID与捐赠表上的userID链接在一起。

正确,所以我想做的是从成员和捐赠表中选择所有数据,并用捐赠金额来辅助每个ID。 因此,我想做的是在所有捐赠名称旁边附上所有捐赠名称,如果可以的话。

这是我目前的代码

$ connect-包含我的配置

  //Connection info.
  global $connect;


  //inner join
  $sql = "SELECT members.firstname, members.lastname 
  FROM members INNER JOIN   donations ON members.userID = donations.userID WHERE donations.amount !='' ORDER BY members.userID ASC ";

  $result = mysqli_query( $connect, $sql);


  while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){

    $list .= $row["firstname"];
    echo $list;
}

我收到此错误:mysqli_fetch_array()期望参数1为mysqli_result布尔值

更新:感谢您的所有帮助,我正在运行SQL查询,只是获得了名字和姓氏。

  SELECT members.firstname, members.lastname FROM members INNER JOIN   donations ON members.userID = donations.userID WHERE donations.amount !='' ORDER BY members.userID ASC

我认为我在这里做错了!=''捐款金额是十进制,我的目标是对吗?

您在列名'fisrname'=>'firstname'中有错字。 首先在phpmyadmin或其他工具中检查查询。 另请阅读有关mysqli_error的信息,以及以后有关访问数据库的其他方法(如PDO,Doctrine等)的信息。

在查询中用members.userID替换members.id

SELECT members.firstname, members.lastname, donations.amount 
FROM members
INNER JOIN donations ON members.userID = donations.userID
WHERE donations.amount != ''
ORDER BY members.userID ASC

至于SQL错误,这是因为当查询有问题或未找到结果时,$ result为false

mysqli_fetch_array()期望参数1为mysqli_result布尔值

为防止错误,请添加一个if情况,因为您需要一段时间。

if($result){
    while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
       $list .= $row["firstname"];
       echo $list;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM