我有以下查询:
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号码用于从另一个表(比如表客户)中选择它们存储在id中,以及其他信息如名称,姓氏等。
基本上我需要的是扩展该查询以使用获得的ID从表客户中提取客户名称和姓氏。
答案 0 :(得分:4)
从两张桌子获得信息的方式相同。添加逗号,添加第三个表名,并将关系添加到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