[英]Return all rows from table and add extra column to indicate pivot table inclusion
我正在嘗試使用一些分組的復選框為表單創建數據,其中包括用戶先前的選擇。 為了准備數據,我試圖返回復選框可見性表中的所有行,並添加一個額外的列,該列指示可見性表中的行是否出現在數據透視表users_visibility中。 我該怎么做呢?
這就是我所擁有的。 它根據用戶的ID返回兩個表的共同點。
select
visibility.id as visibility_id,
visibility.title as visibility_title,
users_visibility.users_id as checked
from visibility
left join users_visibility on users_visibility.visibility_id = visibility.id
where users_visibility.users_id = 2
表格示例
visibility
=======================
id title
-----------------------
1 Drivers licence
2 No Criminal record
3 Senior volunteer
users_visibility
===========================
id users_id visibility_id
---------------------------
1 2 3
我想要退貨
========================================
visibility_id visibility_title checked
----------------------------------------
1 Drivers licence NULL
2 No Criminal record NULL
3 Senior volunteer 2 (user_id or whatever indicator)
謝謝。
對於left join
,除第一個表外的所有條件都應在on
子句中。
表別名還將使查詢更易於編寫和閱讀:
select v.id as visibility_id, v.title as visibility_title,
uv.users_id as checked
from visibility v left join
users_visibility uv
on uv.visibility_id = v.id and uv.users_id = 2;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.