MySQL从两个具有公共密钥的表中选择不同的值

时间:2013-07-29 18:14:51

标签: mysql

我正在使用3表进行查询。引号表有一个名为quote_id的键,它存储在quote_items表中。引号表中只有一个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

1 个答案:

答案 0 :(得分: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 );