簡體   English   中英

MySQL從多個表中選擇唯一值

[英]mysql select unique values from multiple tables

我有看起來像這樣的數據:

table:master
topic| subtopic |  task  
recreation | skiiing  | use poles
recreation | skiiing  | wax skiis
events  | block party | run electricity
events  | skiing | purchase banner

我將數據移到關系mysql數據庫中,所以看起來像這樣

table: topics
id | name
1 | recreation
2 | events
----------------------
table : subtopics
id | name | topic
1 | skiing | 1
2 | block party | 2
3 | skiing | 2

我很難在不重復任務表的情況下抓取任務。

我當前的語句如下所示:

INSERT INTO TASKS
SELECT
 master.task,
 subtopics.id
FROM master,subtopics
WHERE master.subtopic = subtopic.name
AND master.topic = topic.name

當我運行它時,結果為我提供了2個“使用極點”實例,一個實例指向子主題1,另一個實例指向子主題3-這是不正確的。

如何運行SELECT語句以僅提取對主題/子主題組合唯一的任務?

您需要連接所有三個表(主題不在查詢的FROM子句中,而在WHERE子句中)。

INSERT INTO TASKS
SELECT master.task, subtopics.id
FROM master
JOIN topic ON master.topic = topic.name
JOIN subtopics ON master.subtopic = subtopics.name AND subtopics.topic = topic.id

暫無
暫無

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

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