我正在尝试学习 MEAN,并且正在尝试制作一个简单的 Pokemon 查找器。
问题是我在处理附加到组件的事件时遇到了麻烦。
这是主要视图:
import React, { Component, PropTypes } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
/* Import Components */
import Search from './components/Search/Search';
import { Grid, Row, Col } from 'react-bootstrap';
/* Import Actions */
import { fetchByName } from './PokedexActions';
// Import Style
//import styles from './Pokedex.css';
class Pokedex extends Component {
handleFind= (name) =>{
this.props.dispatch(fetchByName({name}));
};
render() {
return (
<Grid>
<Row>
<Col md={4}>
<Search findPokemon={this.handleFind}/>
</Col> …Run Code Online (Sandbox Code Playgroud)我需要通过 sequelize(使用 mysql)在两个表(父表和子表)中进行查询。
问题是当我在父表上使用 where 子句时,它会丢弃子表上的结果。
在 SQL Words 中,我需要类似的东西
SELECT *
FROM PARENT
INNER JOIN CHILD
ON PARENT.ID = CHILD.PARENTID
WHERE PARENT.FIELD LIKE 'A'
OR CHILD.FIELD LIKE 'A'
Run Code Online (Sandbox Code Playgroud)
相反,续集总是返回类似
SELECT *
FROM PARENT
INNER JOIN CHILD
ON PARENT.ID = CHILD.PARENTID
AND (CHILD.deletedAt IS NULL AND (CHILD.FIELD LIKE 'A'))
WHERE (PARENT.deletedAt IS NULL AND (PARENT.FIELD LIKE 'A'))
Run Code Online (Sandbox Code Playgroud)
我检查了数据,子查询带来了结果,但由于父查询中的 where 语句,它丢弃了子结果
更新
我的代码是这样的:
var childTable = {model:child.model,where.$or:{childField:{$like:'A'}}};
queryOptions = {};
queryOptions.include = [chilldTable];
queryOptions.where = {$or:{parentField:{$like:'A'}}}
Parent.findAll(queryOptions).then(res.send.bind(res))
.catch(errorHandler(res, next));
Run Code Online (Sandbox Code Playgroud)
现在有人为什么会这样?
谢谢!