我有两张桌子:
tblDowntime
downtimeID - downtimeDescription
1 - dt_desc
2 - dt_desc2
tblMachineArea
areaID - downtimeID - areaDescription
1 - 1 - area1
2 - 2 - area2
我知道停机时间描述,那么我需要做些什么才能从tblMachineArea获取相应的区域?
我可以从ID中获取它们,但我的列表框只有描述
我有INSERT this answer,但无法适应它...除非我遗漏了一些非常明显的东西......
我的另一个问题是使用什么加入...我尝试使用machineID = 1进行内连接,它返回tblMachineArea中的所有行但使用不同的machineID取决于我是否在查询中使用1或2 ....对我来说没什么意义
编辑:我运行的查询是
SELECT areaID, tblMachineArea.downtimeID, tblDowntime.downtimeDescription, areaDescription
FROM tblDowntime
INNER JOIN tblMachineArea ON tblMachineArea.downtimeID = 1;
图片:(请原谅桌面名称和字段略有不同,所以我更新了原件)
任何帮助将不胜感激
答案 0 :(得分:1)
您可以避免使用联接并运行两个查询。
首先获取机器的ID并将其存储为变量。然后使用该变量来获取所需的信息。
此外,您提到的链接并不使用prepredred语句,如果您可以提高安全性,最好将其用作策略。
这是我用于注册用户的PHP函数,您可以看到准备好的语句是如何构建的。
//function for registering a new user and adding their details to the database
public function register($username, $password, $email){
$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$emailCode = sha1($username + microtime());
$password = sha1($password);
//prepare statement and bind values
$query = $this->db->prepare("INSERT INTO `users` (`username`, `password`, `email`, `ip`, `time`, `emailCode`) VALUES (?, ?, ?, ?, ?, ?) ");
$query->bindValue(1, $username);
$query->bindValue(2, $password);
$query->bindValue(3, $email);
$query->bindValue(4, $ip);
$query->bindValue(5, $time);
$query->bindValue(6, $emailCode);
try{
$query->execute();
//function stuff here removed to save space
}catch(PDOException $e){
die($e->getMessage());
}
}//end register function