我有两个mysql表。 ItemTable
这是一个简单的item-id和一些与项目相关的数据。
--------------------------------------
| ItemId | ItemDescription | ItemPrice |
--------------------------------------
我有另一张表CategoryTable
负责将商品分类到不同的类别
--------------------------------------
| ItemId | CategoryId |
---------------------------------------
并非所有项目都已分类。在不更改两个表的模式的情况下,查找未分类项(通过其id)的最快/最有效的方法是什么。我尝试加入ItemId
上的两个表格,但它忽略了未分类的项目。
答案 0 :(得分:1)
只需从export default class HutDBStatsRouter extends Component {
constructor(props) {
super(props);
this.state = {
componentSelected: 'One',
}
}
changeComponent = (component) =>{
this.setState({componentSelected: component});
}
renderComponent(component) {
if(component == 'Two') {
return <HutDBStats changeComponent={this.changeComponent} />
} else if(component == 'One') {
return <HutDBPlayerView changeComponent={this.changeComponent} />
}
}
render() {
return (
<View style={styles.container}>
{this.renderComponent(this.state.componentSelected)}
</View>
);
}
}
class HutDBPlayerView extends Component {
render() {
return (
<View>
<TouchableOpacity onPress={() => this.props.changeComponent('Two') }>
<Text>Go back to ListView</Text>
</TouchableOpacity>
</View>
);
}
}
class HutDBStats extends Component {
constructor(props) {
super(props);
this.state = {
source : [],
dataSource : new ListView.DataSource({ rowHasChanged: (row1, row2) => row1 !== row2, }),
loaded : false,
page : PAGE_LOAD_AMT,
search : '',
};
}
componentDidMount() {
this.fetchData(API_PATH + '&page=0',true, false);
}
.......
.......
renderList(d) {
return (
<TouchableOpacity onPress={() => this.props.changeComponent('Two') }>
...
</TouchableOpacity>
);
}
}
中选择ItemIds
,然后在CategoryTable
中选择那些不在ItemTable
中的ID。
CategoryTable
如果您想要每个SELECT ItemId
FROM ItemTable
WHERE ItemId NOT IN (SELECT C.ItemId
FROM CategoryTable C);
及其ItemId
,并且还包含那些没有类别的项目,则可以使用Category
。这将为未分类项目的LEFT JOIN
字段输出NULL
。
Category