检索由表连接忽略的项目?

时间:2017-06-03 05:14:03

标签: mysql

我有两个mysql表。 ItemTable这是一个简单的item-id和一些与项目相关的数据。

 --------------------------------------
| ItemId | ItemDescription | ItemPrice |
 --------------------------------------

我有另一张表CategoryTable负责将商品分类到不同的类别

  --------------------------------------
| ItemId | CategoryId                   |
 ---------------------------------------

并非所有项目都已分类。在不更改两个表的模式的情况下,查找未分类项(通过其id)的最快/最有效的方法是什么。我尝试加入ItemId上的两个表格,但它忽略了未分类的项目。

1 个答案:

答案 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