簡體   English   中英

返回表中的所有行並添加額外的列以指示數據透視表包含

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

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