php - 如何从有条件的表中获取数据,该数据不能存在于其他表中
问题描述
我有 2 张桌子perkakasan
和peminjaman
. 两个表都有相同的主键,即nosiri
. 它们具有关系并且perkakasan
是主键。这些是表的示例。
perkakasan
nosiri:SMKS001L, SMKS002L, SMKS001N
peminjaman
nosiri:SMKS001L, SMKS001N
我想从表“perkakasan”中获取数据,条件是表“peminjaman”中不能存在数据,在这种情况下,数据是 SMKS002L。请帮我做这些,感谢任何帮助:)
<?php
include 'capaian.php';
$test = "SELECT perkakasan.nosiri as nosiriperkakasan from perkakasan
WHERE nosiri in ( SELECT nosiri FROM peminjaman WHERE nosiri != 'nosiriperkakasan' )";
$testcapai = mysqli_query($capaiDB, $test);
if($data=mysqli_fetch_array($testcapai)){
do{$nosiri = $data['nosiriperkakasan'];
echo "$nosiri";
}while($data=mysqli_fetch_array($testcapai));
}else{
echo "Gagal";
}
?>
我尝试过的编码显示 SMKS001L 和 SMKS001N
解决方案
您可以进行左连接,然后过滤这些结果,其中第二个表中没有记录。
SELECT p1.*
FROM perkakasan p1
LEFT JOIN peminjaman p2
ON p1.nosiri=p2.nosiri
WHERE p2.nosiri IS NULL
推荐阅读
- javascript - TypeScript 等效于使用括号和变量(作为字符串来访问对象属性)?
- javascript - 每次运行特定函数类型时运行一个函数
- c++ - 我怎么做才能读取数字,以便计算平均值
- javascript - JMeter WebDriver Sampler 没有用于脚本语言的 javascript
- regex - 如何在 AppleScript 中使用正则表达式?
- swift - Firebase queryOrdered,queryEqual 不适用于在比孙子更深的节点上进行排序和查找
- flutter - 如何以编程方式在 Flutter 中用 Empty Container() 小部件替换 Text() 小部件?
- javascript - svg 不是从符号 svg sprite 渲染的(在外部文件中)
- flutter - 如何在字符串函数中使用等待
- c# - 检测 JToken 中的连续花括号