我想通过将try {
$att = $att->query('select att_time,att_date,att_card_no from att_detail WHERE att_card_no IN (select name from att_user where cardno="2342323423")');
$att -> execute();
$result = $att -> fetch();
}
catch (PDOException $e){
echo $att . "<BR>" . $e->getMessage();
}
$att -> execute();
?>
<?php echo "Name: ".$result['att_card_no']; ?>
Table:att_detail
+---------+----------+-------------+------------+
| no | att_time | att_date | att_card_no|
+---------+----------+-------------+------------+
| 1 | 08:01 | 11-12-17 | 2342323423 |
| 2 | 08:02 | 12-12-17 | 4574574577 |
| 3 | 08:03 | 13-12-17 | 4656456796 |
| 4 | 08:04 | 14-12-17 | 9343450984 |
+---------+----------+-------------+------------+
Table: att_user
+----+-------------+-------------+
| no | name | cardno |
+----+-------------+-------------+
| 1 | name1 | 2342323423 |
| 2 | name2 | 4574574577 |
| 3 | name3 | 4656456796 |
| 4 | name4 | 9343450984 |
+----+-------------+-------------+
表中att_card_no的值与att_user表中的cardno相匹配来显示名称。
Results = [
["Names :", []]
["Score 1:", []]
["Score 2:", []]
["Score 3:", []]
["Mean :", []]
]
但是不显示att_user的名称值。欣赏这里的错误。也没有错误抛出。
编辑:如果你无法回答,或者如果你发现类似的问题可以解决我的问题,请告诉我,因为我的搜索没有找到任何信息但是投票结果这个问题没有帮助
答案 0 :(得分:2)
您的SQL语句存在一些问题。
由于名称不在列的选择列表中,因此不会出现在结果列表中 组。在你的位置,你试图匹配att_card_no =赢得的名字 永远匹配。
这是您的SQL语句:
select
att_time,
att_date,
att_card_no
from att_detail
WHERE att_card_no IN (select name from att_user where cardno="2342323423")
但这是你真正想要的:
select
b.`name`,
a.`att_time`,
a.`att_date`,
a.`att_card_no`
from ent a
JOIN att_user b
ON a.`att_card_no` = b.`cardno`;
答案 1 :(得分:1)
您需要使用JOIN
查询,如下所示: -
(SELECT att_user.name,att_detail.att_time,att_detail.att_date,att_detail.att_card_no FROM att_user LEFT JOIN att_detail on att_user.cardno = att_detail.att_card_no WHERE att_user.cardno="2342323423");
<强> 注: - 强>
您的查询实际上是这样转换的: -
'select att_time,att_date,att_card_no from att_detail WHERE att_card_no IN ("name1")'
所以基本上没有选择name
列,并且母鸡不会来。
答案 2 :(得分:1)
你应该使用JOIN
$att = $att->query('
select a.att_time
, a.att_date
, a.att_card_no
, b.name
from att_detail as a
inner join att_user as b on a.att_card_no = b.card_no and b.cardno="2342323423"'