1

我正在使用 3 个表进行查询。报价表有一个名为quote_id 的键,它存储在quote_items 表中。在quotes 表中只会有一个quote_id 实例,但在quote_items 表中可能会出现多次。我想将两者结合在一起,但过滤掉 quote_id 多次出现的任何实例。

SELECT *  FROM quotes 
INNER JOIN quote_items ON 
quotes.quote_id IN (SELECT DISTINCT quote_id FROM quote_items)
INNER JOIN accounts ON 
quotes.account_id = accounts.account_id AND quotes.status = 0 
WHERE primary_sales_id = 2 AND quotes.quote_id = quote_items.quote_id
ORDER BY quotes.date_submitted DESC

您可以忽略 account_id 部分。基本上我的第 3 行应该是不同的,我知道,但是我不确定如何去做。

如果我有这样的报价

quote_id | quote_name
1        | quote1
2        | qute2

和quote_items 看起来像这样

quote_id | item_name
1        | boards
2        | nails
2        | blocks

我应该回来

quote_id | quote_name | item_name
1        | quote1     | boards
2        | quote2     | nails
4

1 回答 1

1

您可以使用:

SELECT DISTINCT quotes.quote_id, quote_name, item_name
FROM quotes, quote_items 
WHERE quotes.quote_id = quote_items.quote_id
group by (quote_id );
于 2013-07-29T18:24:59.513 回答