示例数据:
说明:
TableA is =IDAPK, No Urut(L1), No Tampil (L1), Text Faktor (L1)
TableB is =IDBPK, IDAFK, No Urut(L2), No Tampil (L2), Text Faktor (L2)
IDAPK=IDAFK (ForeignKkey)
你可以加入使用SQL Server进行查询,就像上图中的结果一样吗?我无法找到自己的逻辑。 谢谢......
答案 0 :(得分:1)
我找到了一种方法。两个query
中的两个table
然后Union All
result
个Select [No Urut(L1)],[No Tampil (L1)],[Text Faktor (L1)],[No Urut(L2)],[No Tampil (L2)],[Text Faktor (L2)] From
(
Select IDAPK As ID,1 As SL,[No Urut(L1)],[No Tampil (L1)],[Text Faktor (L1)],'' As [No Urut(L2)],'' As [No Tampil (L2)], '' As [Text Faktor (L2)] From TableA
Union All
Select IDAFK As ID,2 As SL,'' As [No Urut(L1)],'' As [No Tampil (L1)],'' As [Text Faktor (L1)],[No Urut(L2)],[No Tampil (L2)],[Text Faktor (L2)] From TableB
) As TableAB Order By ID, SL
。检查下面的SQL:
int lightPin = A0;
int valLight = 0;
int ledTrans = 2;
int pirTrans = 3;
int pirPin = 4;
int pirState = LOW;
int CalTime = 30;
int colorTrans = 5;
int s2 = 6;
int s3 = 7;
int OUTpin= 8;
boolean RD= false;
boolean GD = false ;
boolean BD = false;
int rfPin = 9;
void setup() {
pinMode(A0,INPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,INPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,INPUT);
pinMode(9,OUTPUT);
Serial.begin(9600);
}
void printlines();
void pirSensor();
void colorSensor();
void pirSensor2();
void lightSensor() {
//light sensor
valLight = analogRead(A0);
delay(1000);
if (valLight >= 300) {
ledTrans = HIGH;
pirTrans = HIGH;
pirSensor();
} else {
delay(8000);
}
}
void pirSensor() {
// Calibration
for ( byte i = 0; i < 30; i++) {
delay(1000);
}
// Check PIR state
int pirState = digitalRead(2);
delay(1500);
pirState = digitalRead(2);
if (pirState == HIGH) {
colorTrans = HIGH;
colorSensor();
} else if (pirState == LOW) {
pirState = LOW;
lightSensor();
}
}
void colorSensor(){
//Check Color reads pulse for RGB
// void checkred
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
unsigned int RW = 255 - (pulseIn(OUTpin, LOW)/ 400 - 1); // turns into 0-255
delay(6000);
// void checkgreen
digitalWrite(s2,LOW);
digitalWrite(s3,HIGH);
unsigned int GW = 255 - (pulseIn(OUTpin, LOW)/ 400 - 1);
delay(6000);
// void checkblue
digitalWrite(s2, HIGH);
digitalWrite( s3, HIGH);
unsigned int BW = 255 - (pulseIn(OUTpin, LOW) / 400 - 1);
delay(6000);
// seeing which color I got(r g or b)
if (RW > BW && RW > GW){
RD = true;
delay(7000);
} else if (GW > RW && GW > BW){
GD = true;
delay(7000);
} else if (BW > RW && BW > GW){
BD = true;
delay(4000);
}
}
void pirSensor2(){
pirState = digitalRead(2);
delay(1500);
pirState = digitalRead(2);
if(pirState = HIGH){
colorSensor();
}else{
printlines();
}
}
void printlines(){
if(RD){
Serial.print("RED DETECTED");
} else if(GD){
Serial.print("GREEN DETECTED");
}else if(BD){
Serial.print("BLUE DETECTED");
}else if(RD && GD){
Serial.print("RED & GREEN DETECTED");
}else if(RD && BD){
Serial.print("RED & BLUE DETECTED");
}else if(BD && GD){
Serial.print("GREEN & BLUE DETECTED");
}else if(RD && GD && BD){
Serial.print("RED, GREEN, BLUE DETECTED");
}
delay(7000);
}
输出SQL:
答案 1 :(得分:0)
此查询使用INNER JOIN,因此它返回两个表中具有匹配值的记录。
<script src="https://d3js.org/d3.v4.min.js"></script>