SQL获取另一个表中包含相同字符的行的ID

时间:2017-05-13 15:00:58

标签: sql join left-join

我正在练习一些SQL,我遇到了一个我有两张桌子的情况。它们都有“名称”列,一个表有id,一个没有。我想获取名称行的id,并将该行的ID添加到其他表的同名行。

Table A
ID, Name
1, Ryan
2, Chris
3, Ben

Table B
ID, Name
null, Ryan
null, Chris
null, Ben

基本上,我需要获取表B的名称,找到表A中具有匹配“名称”列的行,获取ID并将其添加到表B中的空ID列

1 个答案:

答案 0 :(得分:1)

试试这个:

#include <stdio.h>
#include <stdlib.h>

#define MAX 5



 typedef struct charNode {
    int arr[MAX];
    struct charNode *next;
} charNode;


void addNode();
void printAll();

	

    int main(){
	  int c,i;
 		charNode *head=malloc(sizeof(charNode));
 		charNode *current=head;

 while((c=getchar())!=EOF){
 	while(i<MAX){
		current->arr[i++]=c;
	}
	i=0;
	addNode(current);
 }
	printAll(head);


	return 0;
 }
	void addNode(charNode *current){
		 struct charNode *link = (struct charNode*) malloc(sizeof(struct charNode));
  		 current->next =link;
  		 link->next = NULL;
		 current=current->next;
	} 

	void printAll(charNode *head){
		int j=0;
		while(head->next!=NULL){
			while(j<MAX){
				printf("\n %d \t",head->arr[j++]);
			}
				printAll(head->next);
		}
		return;
	}

<强>更新

没有注意到您需要更新表B中的col id。

请改为尝试:

 SELECT ta.id as id_a, ta.name, tb.id as id_b 
 FROM TABLE_A as ta
 LEFT JOIN TABLE_B as tb
 ON ta.name = tb.name;