我有下面的查询,在脸上似乎工作正常,但它给出一些奇怪的结果,我不确定数据问题或查询本身的错误。
查询格式为:
SELECT j.username, u.email, u.accountType
FROM users u JOIN
j_users j
ON j.email = u.email
WHERE j.email IN (select email FROM j_users);
users
表可能包含相同电子邮件地址的多个条目,但accountType
会有所不同。但是在j_user
表email
内是唯一的,这里的问题很奇怪,查询的结果如下:
|bob |bob@gmail.com |admin|
|bob |bob@gmail.com |user |
| |bob@gmail.com |mod |
|steve|steve@gmail.com|admin|
| |steve@gmail.com|user |
| |steve@gmail.com|mod |
从查询中可以看到任何可以解释这个的东西吗?或者是一种更好的方法来提取我感兴趣的数据(来自users
表的所有值j_users
}
编辑
感谢您指出冗余但是我的主要问题仍然存在,返回结果集中的某些行没有用户名,但在j_user
表中这是一个必填字段,每行都有一个集合。如前所述,每个电子邮件在此表中都是唯一的,因此,如果用户名显示在一行中,肯定会显示所有具有相同电子邮件地址的行?
答案 0 :(得分:1)
此查询应该执行您想要的操作:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
final String text =getResources().getString(R.string.demo);
new AsyncTask<Void, Void, Void>() {
@Override
protected Profile doInBackground(Void... params) {
PersonalityInsights service = new PersonalityInsights();
service.setUsernameAndPassword("", "");
service.setEndPoint("https://gateway.watsonplatform.net/personality-insights/api");
Profile profile = service.getProfile(text);
return profile;
}
@Override
protected void onPostExecute(Profile profile) {
super.onPostExecute(profile);
TextView output = x.findViewById(R.id.output);
output.setText(profile.toString())
}
}.execute();
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View x = inflater.inflate(R.layout.fragment_analyzer, container, false);
EditText content= x.findViewById(R.id.content);
TextView output = x.findViewById(R.id.output);
// String text = content.getText().toString();
return x;
}
您的查询也应该有效,但这是多余的。您只是缺少let makeVepo: RecordFactory<any> = Record({
product: new makeProduct(),
menu: new makeMenu(),
formControls: new makeFormControls(),
some: 10
})
export const vepo = new makeVepo()
vepo.set('some', 200)
的用户名。