MYSQL - SELECT AS 别名在子查询中使用

标签 mysql select subquery

我希望能够使用我在子查询中进一步选择的项目之一。 正如您在本示例中看到的,我已将相关“变量”设置为 100,但实际上这将是一个动态数字,因此我需要能够在子查询中访问它。

INSERT INTO users_friends (userId, friendId) 
SELECT 77, id as noob
FROM users WHERE email = 'a@g.com' 
AND
NOT EXISTS (SELECT * FROM users_friends
WHERE userId = 77 and friendId = noob)
LIMIT 1

最佳答案

我不完全确定我理解你的问题,但 NOT EXISTS 的工作方式就像 LEFT JOIN 和 IS NULL 一样。所以我认为这会起作用:

SELECT 77, @noob
FROM users u
  JOIN (SELECT @noob:= 100) r
  LEFT JOIN users_friends uf on u.userid = uf.userid and uf.friendid = @noob
WHERE email = 'a@g.com' 
  AND uf.userid IS NULL

这是SQL Fiddle .

关于MYSQL - SELECT AS 别名在子查询中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14837024/

相关文章:

mysql - 查找所有重复的主题名称 mysql

sql - 如何在联合查询中的另一个选择中使用一个选择的结果?

mysql - 为列的不同值建立索引

php - Laravel - 按关系表排序

sql - "Learn sql the hard way"- 练习 13 : Trouble with a nested select statement

mysql - 在 MySQL 中,为什么我的 NULL 值没有被正确比较?

mysql - GROUP BY 得到前两行

subquery - 使用 JPA 的 select 子句中的 Suqueries

mysql - 如何在 Eclipse 中配置 Servlet 以使用 JPA 项目?

php - 获取带有表名的结果标题