如何根据另一个表中的值过滤SQL查询

时间:2018-03-21 08:37:37

标签: mysql

我是SQL查询的新手,正试图弄清楚如何以某种方式过滤我的输出。

我想要实现的功能是可以在一个条目上将多个用户列为作者,并且还可以通过使用下拉菜单或类似内容来过滤搜索结果以查看作者的哪些条目也列出了。

我目前在我的数据库中有两个表,一个名为ENTRIES,另一个名为AUTHORS

每个表格如下:

+-------------------------------+       +---------------------------------+
DB: ENTRIES // To keep all entries.     DB: AUTHORS // To keep track of which authors that are listed to each entry.
+-------------------------------+       +---------------------------------+
ID   TITLE    DATE                      ID   AUTHOR1    AUTHOR2    AUTHOR3
1    NAME     2018-03-19                1    TRUE       FALSE      TRUE
2    NAME     2018-03-20                2    FALSE      TRUE       FALSE
3    NAME     2018-03-21                3    TRUE       FALSE      FALSE
+-------------------------------+       +---------------------------------+

我的SQL查询现在看起来像这样:

$query = "
 SELECT * FROM ENTRIES INNER JOIN AUTHORS ON ENTRIES.ID=AUTHORS.ID;
 ";
}
$result = mysqli_query($con, $query);

我得到它列出所有结果,但我不知道如何根据AUTHORS表中的值过滤结果? INNER JOIN是正确的方式吗?

结果应该是这样的:

FILTER ON: ALL / NAME / NAME / NAME

#####################################################
# 1  TITLE     AUTHOR 1 AUTHOR 3         DATE       #
#####################################################

#####################################################
# 2  TITLE     AUTHOR 2                  DATE       #
#####################################################

#####################################################
# 3  TITLE     AUTHOR 1                  DATE       #
#####################################################

1 个答案:

答案 0 :(得分:-2)

您必须使用子查询。

    public static int[] randomSquare() 
{

    int[] array = new Random().ints(10).map(x -> x*x).toArray();
    //some code, method logic etc.
    return array;

}

https://dev.mysql.com/doc/refman/5.7/en/subqueries.html