我有两张表格如下:
id name role_id
---------------------------
1 Hamdan 1
2 Sara 2
3 John 2
id role
---------------
1 Admin
2 Author
id name user_role
---------------------------
1 Hamdan Admin
2 Sara Author
3 John Author
注意:是否可以?在[Select * from tblPerson]语句中使用,因为我不想键入每个字段名称,如: 我有这两个(2)解决方案,但我只想使用SELECT语句。
SELECT p.id, p.person_name, roles.role
FROM person_detail p
INNER join user_roles roles
ON p.role_id = roles.id
SELECT p.id,
p.person_name,
(SELECT user_roles.role FROM dbo.user_roles WHERE id = p.role_id) As 'user_role'
FROM dbo.person_detail p
答案 0 :(得分:1)
以下是没有JOIN
关键字的另一种解决方案
示例1:
SELECT
*
FROM
`person_detail`,
`tbl_user_roles`
WHERE
person_detail.role_id = tbl_user_roles.id
注意:以上查询将返回两个表中的所有列
示例2:
SELECT
person_detail.id,person_detail.name,tbl_user_roles.role AS user_role
FROM
`person_detail`,
`tbl_user_roles`
WHERE
person_detail.role_id = tbl_user_roles.id
注意:以上查询将返回两个表中的选定列
重要说明:但您不应使用此类查询。在使用多个表操作数据时,您应该使用JOIN
关键字
答案 1 :(得分:0)
您可以使用以下内容,但使用asterix是一个不好的实践,除非它是用于测试目的。
SELECT p.*, roles.role
FROM person_detail p
INNER join user_roles roles
ON p.role_id = roles.id
答案 2 :(得分:0)
您可以创建一个view想要查看的内容:
CREATE VIEW view_user_roles AS
SELECT p.id, p.person_name, roles.role
FROM person_detail p
INNER join user_roles roles
ON p.role_id = roles.id
然后从视图中选择:
select * from view_user_roles