如何在mysql的where子句中使用select查询?

时间:2015-12-10 10:33:58

标签: php mysql

我正在尝试从invoiceNo不同的表中检索所有内容。所以这就是我尝试过的。

SELECT * FROM  `selected_items` WHERE 'invoiceNo' IN 
(SELECT DISTINCT(invoiceNo) AS invoiceNo FROM selected_items`);

当我在php myadmin中尝试此操作时,我收到以下警告但没有输出。

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第2行。

当我从我的Android应用程序运行我的PHP脚本时,它返回任何内容。是否有一个地方可以检查我的查询,如php代码检查器。

我是编程新手,所以欢迎任何帮助和建议。谢谢你:)。

4 个答案:

答案 0 :(得分:1)

改变这个:

SELECT * FROM  `selected_items` WHERE 'invoiceNo' IN 
(SELECT DISTINCT(invoiceNo) AS invoiceNo FROM selected_items`);

 SELECT * FROM  `selected_items` WHERE invoiceNo IN (SELECT DISTINCT(invoiceNo) AS invoiceNo FROM selected_items ) GROUP BY invoiceNo

因为invoiceNo是一个列名,所以你不应该在它上面使用引号,要么保持原样,要么使用反引号。

答案 1 :(得分:1)

萨蒂已经在评论中提到过:你可能意味着:

SELECT * FROM selected_items GROUP BY invoiceNo;

答案 2 :(得分:0)

删除代码的“`”符号末尾并删除字段名称中的单引号,因为值只需要单引号。

像这样:

"SELECT * FROM  `selected_items` WHERE invoiceNo IN 
(SELECT DISTINCT(invoiceNo) AS invoiceNo FROM selected_items);"

答案 3 :(得分:0)

删除代码的“`”符号末尾

你试试这个......

SELECT * FROM `selected_items` WHERE `invoiceNo` IN (SELECT DISTINCT(invoiceNo) AS invoiceNo FROM selected_items);