-3

大家好,这是我的 SQL 查询:

SELECT * 
FROM path JOIN (
    SELECT * FROM invoice WHERE client_Id='$_SESSION[user]'
) ON INVOICE.path_Id=PATH.Id

我想在第一个表中加入两个表必须有client_Id=$_SESSION[user]。这两个表必须在 上连接path_Id。请帮助我以正确的方式编写此查询。谢谢

4

2 回答 2

1

试试这个查询

SELECT * 
FROM `PATH` JOIN `INVOICE` 
    ON `INVOICE`.`path_Id`=`PATH`.`Id` 
WHERE `INVOICE`.`client_Id`='$_SESSION[user]'
于 2013-04-24T00:33:35.797 回答
1

那行代码有很多错误:

  1. Saintize 用户输入。通过将 $_SESSION 变量直接插入 SQL 查询,您将引入 SQL 注入漏洞以及 XSS 和 CSRF 漏洞。如果有机会,人们可以并且会对您的应用程序做一些讨厌的事情。

  2. 永远不要选择比您需要的更多的数据。您真的需要两个表中的所有列吗?

  3. 为什么选择两个?ASELECT * FROM Path p JOIN Invoice i ON i.path_id = p.id WHERE i.client_id = 1 LIMIT 1将完成这项工作。

于 2013-04-24T00:36:57.510 回答