Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在同一查询中使用查询值_Mysql_Sql - Fatal编程技术网

Mysql 在同一查询中使用查询值

Mysql 在同一查询中使用查询值,mysql,sql,Mysql,Sql,如果有一个查询有两个选择,我可以在第二个选择中使用第一个选择的值吗 i、 e: 上面的方法不起作用,我该怎么做呢?这取决于您试图做什么,您可以使用子查询来获取WHERE子句的结果 比如说 SELECT post_id AS post_2 FROM posts WHERE user_id = (SELECT post_id AS post_1 FROM posts WHERE user_id = 100) SET myVar = (SELECT post_id AS post_1 FROM po

如果有一个查询有两个选择,我可以在第二个选择中使用第一个选择的值吗

i、 e:


上面的方法不起作用,我该怎么做呢?

这取决于您试图做什么,您可以使用子查询来获取WHERE子句的结果

比如说

SELECT post_id AS post_2 FROM posts
WHERE user_id = (SELECT post_id AS post_1 FROM posts WHERE user_id = 100)
SET myVar = (SELECT post_id AS post_1 FROM posts WHERE user_id = 100);

SELECT post_id AS post_2 FROM posts WHERE user_id = myVar  
或者,您可以按顺序运行两个查询,将第一个结果分配给一个变量并使用该变量

比如说

SELECT post_id AS post_2 FROM posts
WHERE user_id = (SELECT post_id AS post_1 FROM posts WHERE user_id = 100)
SET myVar = (SELECT post_id AS post_1 FROM posts WHERE user_id = 100);

SELECT post_id AS post_2 FROM posts WHERE user_id = myVar  

看起来你想加入

SELECT p1.post_id as post_id1
     , p2.post_id as post_id2
  FROM posts p1
  JOIN posts p2
    ON p2.user_id = p1.post_id
 WHERE p1.user_id = 100;

这将只返回其中一个查询的结果。我需要能够返回两个查询的单独结果。好吧,我想我误解了您的意图,在这种情况下,您可能希望执行Hartmut建议的自连接。