gpt4 book ai didi

SQL 比较两个具有相同 id 的表

转载 作者:行者123 更新时间:2023-12-04 20:30:43 25 4
gpt4 key购买 nike

给定以下存储在 SQL 数据库中的表

table 上人

id   username   phone   
1 james 555-666-777
2 gabriel 666-555-777
3 Lucas 222-888-999
4 Marta 555-444-777

表room_booking

id   person_id    room     time
1 2 A2 13:00
2 4 B5 09:00
3 1 C1 20:00

仅获取 room_booking id number 2我希望输出为:

输出表

id   username   phone 
4 Marta 555-444-777

我知道 INNER JOIN 可以完成这项工作,但我从包含在 SELECT * 中的表 room_booking 中获得了字段。

最佳答案

正如其他人所说,答案是不包含不需要的列。由于您需要一个表中的所有列,而不需要另一个表中的任何列,因此解决方案是使用 person。*

Select distinct p.*
from person p
Inner join room_booking r
On r.person_id = p.id

我包括不同的是因为考虑到您的结构,您最终可能每人有不止一次预订。

实现相同目标的替代语法...

/*using sub select*/
Select * from person where id in (select person_id from room_booking);

/*using cte, distinct and inner join*/
; pids as(select distinct person_id from room_booking)
Select person.*
from pids
Inner join person on person_id = id;

/*using cte and subquery with explicit column list */
; pids as(select person_id from room_booking)
Select id, username, phone
from person
Where id in (select person_id from pids)

关于SQL 比较两个具有相同 id 的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629673/

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