mysql - 连接表后如何使用where子句?
问题描述
我有两张桌子:
// refueling_data
+----------+---------+
| distanse | user_id |
+----------+---------+
| 61000 | 1 |
| 60000 | 1 |
| 60000 | 3 |
+----------+---------+
// user
+----------+-----------+
| user_id | username |
+----------+-----------+
| 1 | admin |
| 3 | user1 |
+----------+-----------+
两个表都有更多的列,这个主体不需要显示其他数据。此外,当我尝试将表 refueling_data 中存在的 WHERE 子句列放入时,一切正常。但是,如果我使用仅存在于用户表中的列,则不起作用。
这是我的查询:
SELECT * FROM (SELECT distance, username FROM refueling_data LEFT JOIN user ON refueling_data.user_id=user.user_id) AS tab WHERE tab.username =admin;
执行查询后出现错误:错误代码:1054。“where 子句”中的未知列“admin”
我想实现的表:
// tab
+-----------+-----------+
| username | distance |
+-----------+-----------+
| admin | 60000 |
| admin | 61000 |
+-----------+-----------+
请就我犯的错误给我建议
解决方案
不需要子查询,因为 admin 是一个字符串,你需要用单引号括起来,'admin'
SELECT username, distance
FROM refueling_data r
JOIN user u ON r.user_id = u.user_id
WHERE u.username = 'admin'
ORDER BY distance ASC -- if you want to sort on distance
推荐阅读
- javascript - 在 Shiny R 中显示 ggiraph 图的叠加页面 onclick
- c++ - 是否可以在 softAP ssid 中使用 ESP32 的 mac 地址?
- java - 糟糕的 SQL 语法
- python - 置换矩阵的单行或单列
- ceph - ceph orch host 添加主机问题 (env: centos8, ceph:12.2.5)
- puppeteer - 如何限制 puppeteer 浏览器的内存使用
- sql - 查询以查找之间的提取时间
- c++ - 无法创建简单的彩色窗口(OpenGL、GLFW、GLEW)
- php - 在 Nginx 中将 /file-name 重定向到 file-name.php
- javascript - 在 js 中使用 next 克隆元素