2017-05-21 9 views
0

Ich habe eine Tabelle in MySQL wie dieseMySQL Spalte auf einer anderen Spalte je

ID | Attribute1 | Attribute2 
--- | ------------ | ------------ 
15 | value1  | value2 

und dann habe ich noch eine Tabelle wie folgt aus:

ID | Attribute 
--- | ------------ 
15 | value1 
15 | value2 

Gibt es eine Möglichkeit Attribut1 in Tabelle 1 haben nur unter den entsprechenden Werten der anderen Tabelle auswählbar sein?

Nehmen wir ein Beispiel tun:

ID   | Attribute 
----------- | ----------- 
Apple  | Red 
Apple  | Yellow 
BlueBerry | Red 
BlueBerry | Blue 

ID   | Attribute1 
--------------------------- 
Apple  | Red 
BlueBerry | Blue 

Ich möchte nicht möglich sein, zu wählen, „blau“ für die „Apple“.

+0

Sicher. Wählen Sie die "entsprechenden Werte" (Sie müssen definieren, was das bedeutet) und nur diese als wählbare Werte vorschlagen. –

+0

danke, aber ich brauche eine Hand auf, wie dies zu tun ist, bitte erklären Sie mir –

+1

Sie müssen etwas Mühe zeigen, und viel klarer sein, was Sie erreichen wollen. Definieren Sie "entsprechenden Wert" in einer präzisen Weise. Erläutern Sie, welche Art von Anwendung Sie in welcher Sprache durchführen. Zeige, was du probiert hast. Erklären Sie, mit welcher konkreten Schwierigkeit Sie konfrontiert sind. Wir wissen nur, dass die Werte in gewisser Weise übereinstimmen und dass die Verwendung Werte auswählen muss. –

Antwort

0

können Sie eine Einschränkung hinzufügen:

ALTER TABLE table1 ADD CONSTRAINT fk_t1_attr1 FOREIGN KEY (id, attribute1) 
               REFERENCES table2 (id, attribute); 

So sind Sie nur id/Attribut einzugeben erlaubt Paare, die in Tabelle 1 existieren.

Verwandte Themen