问题 - 我们说我有2张桌子。
表1 - 名称是permission_list,列是ID(唯一ID),col_ID,user_ID
表2 - 名称是list_entries,列是ID(唯一ID),标题,描述,状态
我想从表格2中选择状态为' public'以及表2中表2中的ID显示在表1中的所有行(在列col_ID下)以及表1中的user_ID是否与某个值匹配。因此,任何公共内容,或此特定用户在权限表下列出的任何内容。此查询还会删除重复项 - 如果用户获取其permissions_list中列出的公共条目,它将不会显示两次。
希望有意义!
答案 0 :(得分:1)
你走了:
SELECT DISTINCT table2.* from table2
LEFT JOIN table1 USING (id)
WHERE status='public'
OR user_ID='someuser';
答案 1 :(得分:0)
你需要先为JOIN接受一些教育,第二件事叫做DISTINCT。
从这里开始...... https://www.google.com/
您尚未指定加入条件,因此我们无法真正为您提供代码示例。另外你说问题的方式,我并不完全确定你不想要一个UNION。阅读这些概念,并在可以改进问题时回到这里。
答案 2 :(得分:0)
SELECT table_2.status, table_2.ID, table_1.col_ID
FROM table_1 JOIN table_2
WHERE table_2.status = 'public'
AND table_2.ID = table_1.col_ID
AND table_1.user_ID = 'certain value'
;
试试这个