gpt4 book ai didi

Mysql join覆盖提交id

转载 作者:行者123 更新时间:2023-11-29 13:19:12 24 4
gpt4 key购买 nike

我有两张 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com