当前位置: 首页 > 面试题库 >

mysql-无法使用select *获取所有列

子车飞鹏
2023-03-14
问题内容

我有以下2个表t1,t2

CREATE TABLE t1 (
id INT PRIMARY KEY
);

CREATE TABLE t2 (
id INT PRIMARY KEY
);

INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t2 VALUES (2),(3),(4);

我在跑步

select * from t1 left join t2 using(id);

结果:

+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+

在运行脚本时:

select t1.id, t2.id from t1 left join t2 using(id);

结果:

+----+------+
| id | id   |
+----+------+
|  1 | NULL |
|  2 |    2 |
|  3 |    3 |
+----+------+

select 应该返回所有列,所以,为什么当我使用select 时却没有得到2行?

注意:我正在使用Mysql


问题答案:

正如文档所说:

自然连接和使用USING的连接(包括外部连接变体)将根据SQL:2003标准进行处理:

NATURAL连接的冗余列不会出现。考虑以下这组语句:

CREATE TABLE t1 (i INT, j INT);
CREATE TABLE t2 (k INT, j INT);
INSERT INTO t1 VALUES(1, 1);
INSERT INTO t2 VALUES(1, 1);
SELECT * FROM t1 JOIN t2 USING (j);

列j在USING子句中命名,并且在输出中应该只出现一次,而不应该出现两次。



 类似资料:
  • 如何使用节点扫描AWS dynamodb中的所有项目。js。我在这里张贴我的代码。 我已经跟踪了链接https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.04.html 过了一会儿我就有时间离开这里了。我也检查了这个链接,如何使用节点从“AWS dynamodb”获取/扫描所有项

  • 问题内容: 如何通过传递ID来通过jQuery获得select的所有选项? 我只是想获得他们的价值观,而不是文字。 问题答案: 采用:

  • 我用Discord.js编写了一个不和谐机器人,它曾经获得不和谐服务器的所有用户(我只有一个不和谐服务器中的机器人),但现在它只有59个成员。我在服务器上有300个不和谐的用户。

  • 我尝试用“拆分字符串,”使用StringTokenizer但不能获得整个值,令牌计数显示3但只打印两个元素,如果我尝试使用其他两个输入“ravi,Tuti,786”-相同的输出“ravi,Tuti,786,pincode”获得三个令牌而不是最后一个,我添加了下面的代码 输出为

  • 问题内容: 我正在尝试从以下位置移出旧数据: 复制所有列。我已经尝试过了,但是没有用: 注意:这些表是相同的,并已设置为主键。 问题答案: 手册中描述了正确的语法。尝试这个: 如果id列是一个自动递增的列,并且您在两个表中都已经有一些数据,那么在某些情况下,您可能希望从列列表中省略该id并生成新的id,以避免插入原来的ID表。如果您的目标表为空,那么这将不是问题。

  • 我开始使用函数,而不是PHP中的旧函数,我对这段代码有一点问题: 该代码返回以下两个错误: 警告:mysqli::准备():无法在第136行的C:\用户\Grega\Server\Application\inc\class\APIConnect.php中获取MySQL 致命错误:调用成员函数在第137行的C:\用户\Grega\服务器\应用程序\inc\类\APIConnect.php中的非对象上