我是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 #
#####################################################
答案 0 :(得分:-2)
您必须使用子查询。
public static int[] randomSquare()
{
int[] array = new Random().ints(10).map(x -> x*x).toArray();
//some code, method logic etc.
return array;
}