gpt4 book ai didi

MySQL:从 3 个表中选择

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:17 25 4
gpt4 key购买 nike

我有以下查询:

 SELECT 
DISTINCT sites.site_id,
sites.site_name,
sites.site_url,
earnings.cust_id
FROM
sites,
earnings
WHERE sites.site_id = earnings.site_id AND sites.site_id IN('8', '1666')

该查询很好地为我提供了所询问的信息。它返回两行,一行用于站点 8,另一行用于站点 1666,以及来自这些表的信息。

现在,我希望使用 cust_id 编号从另一个表(假设表 customers)中进行选择,在该表中按 id 存储它们,并在其中存储其他信息,例如姓名、姓氏等。

基本上我需要的是扩展该查询以使用获得的 ID 从客户表中提取客户姓名和姓氏。

最佳答案

与从两个表中获取信息的方式相同。添加一个逗号,添加第三个表名,然后将关系添加到您的 WHERE 子句,就像您对前两个表所做的那样。

SELECT 
DISTINCT sites.site_id,
sites.site_name,
sites.site_url,
earnings.cust_id,
customers.name,
customers.last_name
FROM
sites,
earnings,
customers
WHERE sites.site_id = earnings.site_id AND sites.site_id IN('8', '1666') AND customers.id = earnings.cust_id

不过我认为写出 JOIN 会更清楚:

SELECT
sites.site_id,
sites.site_name,
sites.site_url,
earnings.cust_id,
customers.name,
customers.last_name
FROM
sites
INNER JOIN
earnings
ON
earnings.site_id = sites.site_id
INNER JOIN
customers
ON
customers.id = earnings.cust_id
WHERE
sites.site_id IN (8, 1666)
GROUP BY
sites.site_id

关于MySQL:从 3 个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7001297/

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