Mysql join覆盖提交id

标签 mysql sql node-mysql

我有两张 table 。 提交用户。它们通过 submissions.user_id = users.id 关联。

用户:

+----------------+------------------------+------+-----+-------------------+-----------------------------+
| Field          | Type                   | Null | Key | Default           | Extra                       |
+----------------+------------------------+------+-----+-------------------+-----------------------------+
| id             | int(10) unsigned       | NO   | PRI | NULL              | auto_increment              |
| email          | varchar(128)           | NO   | MUL | NULL              |                             |
| hash           | varchar(64)            | NO   |     | NULL              |                             |
| salt           | varchar(32)            | NO   |     | NULL              |                             |
| username       | varchar(23)            | NO   |     | NULL              |                             |
| type           | enum('normal','admin') | NO   |     | normal            |                             |
| about          | varchar(255)           | NO   |     | NULL              |                             |
| created        | datetime               | NO   |     | NULL              |                             |
| last_login     | timestamp              | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| created_ip     | int(10) unsigned       | NO   |     | NULL              |                             |
| last_login_ip  | int(10) unsigned       | NO   |     | NULL              |                             |
| remember_me    | tinyint(3) unsigned    | NO   |     | 0                 |                             |
| avatar         | varchar(32)            | NO   |     | NULL              |                             |
| confirmed      | tinyint(1) unsigned    | NO   |     | 0                 |                             |
| confirm_code   | varchar(64)            | NO   |     | NULL              |                             |
| public_profile | tinyint(1)             | NO   |     | 1                 |                             |
+----------------+------------------------+------+-----+-------------------+-----------------------------+

提交内容

+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
| Field       | Type                                                                                                                                                                                                                                                                     | Null | Key | Default | Extra          |
+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
| id          | int(10) unsigned                                                                                                                                                                                                                                                         | NO   | PRI | NULL    | auto_increment |
| title       | varchar(255)                                                                                                                                                                                                                                                             | NO   |     | NULL    |                |
| slug        | varchar(255)                                                                                                                                                                                                                                                             | NO   |     | NULL    |                |
| description | mediumtext                                                                                                                                                                                                                                                               | NO   |     | NULL    |                |
| user_id     | int(11)                                                                                                                                                                                                                                                                  | NO   | MUL | NULL    |                |
| created     | datetime                                                                                                                                                                                                                                                                 | NO   |     | NULL    |                |
| category    | enum('animals-pets','autos-vehicles','careers-work','clothing','computers','cooking-food','deals','education','electronics','entertainment','general-advice','finance','health-fitness','hygiene','home-garden','how-to','misc','self-improvement','sports','traveling') | NO   |     | NULL    |                |
| type        | enum('tip','request')                                                                                                                                                                                                                                                    | NO   |     | NULL    |                |
| thumbnail   | varchar(64)                                                                                                                                                                                                                                                              | NO   |     | NULL    |                |
| removed     | tinyint(1) unsigned                                                                                                                                                                                                                                                      | NO   |     | 0       |                |
| down_votes  | int(10) unsigned                                                                                                                                                                                                                                                         | NO   |     | 0       |                |
| up_votes    | int(10) unsigned                                                                                                                                                                                                                                                         | NO   |     | 0       |                |
| score       | int(11)                                                                                                                                                                                                                                                                  | NO   | MUL | 0       |                |
| keywords    | varchar(255)                                                                                                                                                                                                                                                             | NO   |     | NULL    |                |
| ip          | int(10) unsigned                                                                                                                                                                                                                                                         | NO   |     | NULL    |                |
+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+

我正在尝试连接两个表以查看提交,但我得到以下查询的结果给出了这个:

从提交中选择 s.*、u.id、u.username s JOIN 用户 u ON s.user_id = u.id WHERE s.id = 12'

永远给我:

   { id: 15,
     title: 'what the hell!',
     slug: 'what-the-hell',
     description: 'seriously what the hell node mysql?!',
     user_id: 15,
     created: Sat Jan 11 2014 11:58:06 GMT-0800 (PST),
     category: 'misc',
     thumbnail: '',
     removed: 0,
     down_votes: 0,
     up_votes: 0,
     score: 0,
     keywords: '!',
     ip: 127001,
     username: 'blahbster'}

在获取 user.id 时,它始终会生成 submission.id。为什么会覆盖?

最佳答案

这是“覆盖”,因为两个列具有相同的名称id,并且无法区分它们。

只需使用:

SELECT s.*, u.username
FROM submissions s JOIN
     users u
     ON s.user_id = u.id
WHERE s.id = 12;

并使用 user_id 作为用户 ID,使用 id 作为订阅 ID。

关于Mysql join覆盖提交id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21070461/

相关文章:

mysql - 编写查询来计算平均收入但错误地得到一组?

javascript - 将当前 session 存储在变量中以在 MySQL 查询中使用

mysql - 无法使用node-mysql分页

mysql - GWT+MySQL Web 应用程序 : compiling errors

mysql - 获取所有行的总和

mysql - 计数为一个查询的两个选择查询

mysql - 在 TypeScript 中导入时“找不到模块”

python - Django 'Cannot add foreign key constraint' 执行 makemigrations 操作时出错

javascript - 关于 Node.js 中的异步执行流程

php - 在选择框中动态显示值在 codeigniter 中不起作用