[英]MySQL - select column with values and create 'virtual column'
我有3張桌子。
tb_employees:
+---------------+---------------+
| id_employee | employee |
+---------------+---------------+
| 1 | Robert Tomson |
| 2 | Jhonatan Weg |
| 3 | Eva Uhte |
+---------------+---------------+
tb_requirements:
+---------------+-----------------+
| id_requirem | requirem |
+---------------+-----------------+
| 11 | Photo |
| 12 | Criminal Record |
| 13 | Shooting Test |
+---------------+-----------------+
tb_details:
+---------------+-----------------+---------------+
| id_details | id_employee | id_requirem |
+---------------+-----------------+---------------+
| 21 | 1 | 11 |
| 22 | 1 | 12 |
| 23 | 1 | 13 |
| 24 | 2 | 12 |
| 25 | 2 | 13 |
| 26 | 3 | 11 |
| 27 | 3 | 13 |
+---------------+-----------------+---------------+
我要做的是SELECT
of requirem
(描述)和一個特定的員工(例如,對於WHERE id_employee = '2'
),並添加一個“虛擬列”,顯示員工是否有該要求。
像這樣: WHERE id_employee = '2'
+----------------+-----------------+
| requirem | virtual_column |
+----------------+-----------------+
| Photo | 0 |
|Criminal Record | 1 |
| Shooting Test | 1 |
+---------------+------------------+
WHERE id_employee = '3'
+----------------+-----------------+
| requirem | virtual_column |
+----------------+-----------------+
| Photo | 1 |
|Criminal Record | 0 |
| Shooting Test | 1 |
+---------------+------------------+
其中0 =員工沒有該要求,1 =員工具有該要求:來自tb_detail。
我真的不知道如何做到這一點。
你可以幫我嗎?
謝謝你的回答。
實現目標的關鍵是外部OUTER JOIN
SELECT r.requirem, (d.id_requirem IS NOT NULL) virtual_column
FROM tb_requirements r LEFT JOIN tb_details d
ON r.id_requirem = d.id_requirem
AND d.id_employee = 2
id_employee = 2
輸出:
| REQUIREM | VIRTUAL_COLUMN | |-----------------|----------------| | Photo | 0 | | Criminal Record | 1 | | Shooting Test | 1 |
id_employee = 3
輸出:
| REQUIREM | VIRTUAL_COLUMN | |-----------------|----------------| | Photo | 1 | | Criminal Record | 0 | | Shooting Test | 1 |
這是SQLFiddle演示
進一步閱讀:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.