[英]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.