MYSQL - 从两个表中查询

时间:2014-04-01 19:51:59

标签: mysql sql select join

问题 - 我们说我有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中列出的公共条目,它将不会显示两次。

希望有意义!

3 个答案:

答案 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'
    ;

试试这个