Mysql 在同一查询中使用查询值
如果有一个查询有两个选择,我可以在第二个选择中使用第一个选择的值吗 i、 e: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
上面的方法不起作用,我该怎么做呢?这取决于您试图做什么,您可以使用子查询来获取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建议的自连接。