簡體   English   中英

來自條件表的MySQL數據

[英]Mysql data from table with condition

我有兩個mysql表,如下所示:

聯絡人

---------------
id | name | email
---------------
1  | Jack | jack@test.com
2  | John | john@test.com
3  | Liz  | liz@test.com
5  | Jack | jack@test.com
6  | Liz  | liz@test.com
7  | Mike | mike@test.com
8  | Jack | jack@test.com

購買

-------------------
id | contact_id | paid
-------------------
1  | 3          | true
2  | 5          | true

我需要進行購買的唯一的contact_id和其他未購買的獨特的contact_id。

因此,最終結果將為:

-------------------
id | name | email
------------------
2  | John | john@test.com
3  | Liz  | liz@test.com
5  | Jack | jack@test.com
7  | Mike | mike@test.com

我嘗試查詢為:

SELECT * FROM contacts LEFT JOIN purchases ON contacts.id = purchases.user_id

但這並沒有為我提供所需的唯一行。 我嘗試了DISTINCT的幾種組合,但未按要求得到結果。

你有嘗試過嗎?

SELECT COALESCE(purchases.contact_id, contacts.id) as id, name, email
FROM contacts 
LEFT JOIN purchases ON contacts.id = purchases.user_id
GROUP BY name

SQL字段

這樣的東西應該可以工作,但是它的性能是“?”。

SELECT * FROM contacts WHERE id IN (
    SELECT DISTINCT id as i FROM purchases
    UNION
    SELECT DISTINCT contact_id as i FROM purchases
    )
GROUP BY id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM