我有以下表格帖子:
id | user_id | post_title | is published
1 9332 some title 0
2 2133 some title 1
3 9332 some title 0
4 2133 some title 1
5 4555 some title 0
6 4555 some title 1
7 3221 some title 0
8 3221 some title 0
我的目标: 查找具有相同user_id并且没有单一条目"的所有条目已发布" = 1。
因此,我必须获得id为1,3,7和8 =>的条目。这些是到目前为止没有任何单一发布帖子的用户条目。
查询会是什么样的?
EXTENDED:
这里可以找到一个小提琴:
此外,我创建了表2.我的目标是只显示用户的表1条目,表2中没有链接条目。所以我的目标是在执行查询后仅表1条目保留ID 1和3(仅用户9332条目)。
答案 0 :(得分:1)
试试这个:
// ...
catch (Exception e)
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(out));
String str = new String(out.toByteArray());
System.out.println(str);
}
答案 1 :(得分:0)
您可以使用SELECT t.*
FROM t
WHERE NOT EXISTS (SELECT 1
FROM t t2
WHERE t2.user_id = t.user_id AND
t2.is_published = 1
);
:
{{1}}
对于您的示例,所有用户至少有两个条目。此查询将返回具有一个未发布条目的用户。目前尚不清楚这是否可取。如果没有,修改查询非常简单。
答案 2 :(得分:0)
使用嵌套查询:
SELECT T1.*
FROM
Table1 T1
INNER JOIN
(
SELECT user_id,COUNT(*) AS CNT
FROM TABLE1
GROUP BY user_id
) T2
ON T1.user_id=T2.user_id
INNER JOIN
(
SELECT user_id,COUNT(*) AS CNT FROM Table1
WHERE `is published` = 0
GROUP BY user_id
) T3
ON T2.user_id=T3.user_id
AND T2.CNT=T3.CNT
WHERE T1.user_id
NOT IN (
SELECT T1.user_id
FROM Table1 T1
INNER JOIN Table2 T2
ON T1.id=T2.table1_id
)
或使用联接:
id user_id post_title is published
1 9332 some title 0
3 9332 some title 0
<强>输出强>
<tr ng-repeat="cus in postObj.custs">
<td>{{$index + 1}}</td>
<td><input type="checkbox" ng-model="postObj.custs[$index].principal"/></td>
<td>{{cus.Name}}</td>
<td>{{cus.Phone}}</td>
<td>{{cus.AddPre}}</td>
<td><input type="text" class="form-control" ng-model="postObj.custs[$index].relation"/></td>
<td>
<button ng-click="deleteCus(cus)">Delete</button>
</td>
<强>演示强>
答案 3 :(得分:0)
简单的方法是将SUBQUERY
与GROUP BY
和HAVING
子句一起使用。我们可以返回重复的行但没有is_published = 1
然后加入外部查询以返回匹配ID的记录
SELECT t.id,
t.user_id,
t.post_title,
t.is_published
FROM temp t
INNER JOIN (SELECT user_id
FROM temp
GROUP BY user_id HAVING SUM(is_published) = 0) u ON u.user_id = t.user_id
ORDER BY t.id
<强>输出:强>
id user_id post_title is_published
1 9332 some title 0
3 9332 some title 0
7 3221 some title 0
8 3221 some title 0
答案 4 :(得分:0)
E.g:
注意:不要在表/列标识符中使用空格。我已相应地修改了列名。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DialogueSuper : MonoBehaviour
{
public IChoiceHandler ch = null;
public DialogueSuper(IChoiceHandler ch)
{
this.ch = ch;
}
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void end()
{
ch.Next()
}
}