如何运行SQL以获得“John Doe,Pimping”之类的结果
我有表格类别,带有id和cat_名称 示例:152,管道 我有一个表user,带有category\u id和name 例:152,无名氏 当我这样做的时候 从用户中选择名称、类别\u id 因此,我会有类似的东西如何运行SQL以获得“John Doe,Pimping”之类的结果,sql,Sql,我有表格类别,带有id和cat_名称 示例:152,管道 我有一个表user,带有category\u id和name 例:152,无名氏 当我这样做的时候 从用户中选择名称、类别\u id 因此,我会有类似的东西 John Doe, 152 问题: 如何运行SQL以获得以下结果: John Doe, plumbing 试试基本的 这是很容易得到这个,请使用下面的查询相同 SELECT User.Name, Category.cat_name FROM User INNER JOIN C
John Doe, 152
问题:
如何运行SQL以获得以下结果:
John Doe, plumbing
试试基本的
这是很容易得到这个,请使用下面的查询相同
SELECT User.Name, Category.cat_name FROM User
INNER JOIN Category ON Category.Id = User.category_id
快乐编码:-这将起作用:
select a.name,b.cat_name from user a, category b
where a.category_id=b.id
正如您所了解的,您有两个表,并且这些表的记录之间存在一些1对1的关系User&category 所以这里我们将使用一个简单的连接来连接这两个表
SELECT c.cat_name, u.name
FROM category as c, user as u
WHERE c.id = u.category_id
当我使用c分类时,这称为别名。这有两个好处。一是保持我们的查询简短,不需要重复分类,只需使用c;二是SQL查询引擎对我们要选择的内容有100%的清晰性
如果您还想选择id,那么您应该使用c.id或u.category\u id。检查这些替代方法-
IF OBJECT_ID('Category') IS NOT NULL
DROP TABLE Category
IF OBJECT_ID('User') IS NOT NULL
DROP TABLE [User]
CREATE TABLE Category
(ID INT,Cat_name VARCHAR(20))
CREATE TABLE [User]
(Category_id INT,[Name] VARCHAR(20))
INSERT INTO Category(ID ,Cat_name)
VALUES (152,'Plumbing')
INSERT INTO [User](Category_id ,[Name])
VALUES (152,'John Doe')
--Method 1 (using CROSS APPLY)
SELECT U.[Name], C.Cat_name FROM [User] U CROSS APPLY Category C WHERE U.Category_id=C.ID
--Method 2 (using INNER JOIN)
SELECT U.[Name], C.Cat_name FROM [User] U INNER JOIN Category C ON U.Category_id=C.ID
--Method 3 (using WHERE and WITHOUT JOIN)
SELECT U.[Name], C.Cat_name FROM [User] U,Category C WHERE U.Category_id=C.ID
今天的提示:始终使用现代的显式连接语法。更容易编写而不出错,更容易阅读和维护,如果需要,更容易转换为外部联接!今天的提示:始终使用现代的显式连接语法。更容易编写而不出错,更容易阅读和维护,如果需要,更容易转换为外部联接!工作,如预期,谢谢。但是,如何显示sql中的每一行?目前我的代码每行,垃圾邮件与所有记录从SQL
IF OBJECT_ID('Category') IS NOT NULL
DROP TABLE Category
IF OBJECT_ID('User') IS NOT NULL
DROP TABLE [User]
CREATE TABLE Category
(ID INT,Cat_name VARCHAR(20))
CREATE TABLE [User]
(Category_id INT,[Name] VARCHAR(20))
INSERT INTO Category(ID ,Cat_name)
VALUES (152,'Plumbing')
INSERT INTO [User](Category_id ,[Name])
VALUES (152,'John Doe')
--Method 1 (using CROSS APPLY)
SELECT U.[Name], C.Cat_name FROM [User] U CROSS APPLY Category C WHERE U.Category_id=C.ID
--Method 2 (using INNER JOIN)
SELECT U.[Name], C.Cat_name FROM [User] U INNER JOIN Category C ON U.Category_id=C.ID
--Method 3 (using WHERE and WITHOUT JOIN)
SELECT U.[Name], C.Cat_name FROM [User] U,Category C WHERE U.Category_id=C.ID