Ich habe eine Tabelle namens Index
der die Spalten id
und value
hat, wo id
ein Autoinkrement Bigint und value
ist ein varchar mit einem Wort Englisch.SQL Index-basierte Suche
Ich habe eine Tabelle mit dem Namen Search
, die Beziehungen zu der Tabelle Index
hat. Für jede Suche können Sie definieren, welche Indizes in einer Tabelle namens Article
gesucht werden sollen. Die Tabelle Article
hat ebenfalls Beziehungen zur Tabelle Index
.
Die Tabellen, die die Beziehungen definieren sind:
Searches_Indexes
mit Säulen id_search
und id_index
.
Articles_Indexes
mit den Spalten id_article
und id_index
.
Ich möchte alle Artikel finden, die die gleichen Indizes der Suche enthalten.
Zum Beispiel: Ich habe ein Search
mit Indizes laptop
und dell
, würde Ich mag alle Article
s abzurufen, die beide Indizes enthalten, nicht nur eine.
Bisher habe ich dies:
SELECT ai.id_article
FROM articles_indexes AS ai
INNER JOIN searches_indexes AS si
ON si.id_index = ai.id_index
WHERE si.id_search = 1
Wie kann ich meine SQL nur geben die Article
s mit allen Index
es eines Search
?
Edit:
Beispieldaten:
Artikel:
id | name | description | ...
1 | 'Dell Laptop' | 'New Dell Laptop...' | ...
2 | 'HP Laptop' | 'Unused HP Laptop...' | ...
...
Suche:
id | name | id_user | ...
1 | 'Dell Laptop Search' | 5 | ...
Index:
id | value
1 | 'dell'
2 | 'laptop'
3 | 'hp'
4 | 'new'
5 | 'unused'
...
Articles_Indexes:
Article
mit id
1 (dem Dell-Laptop) hat das Index
es 'dell', 'Laptop', 'new'.
Article
mit id
2 (der hp laptop) hat die Index
es "laptop", "hp", "unbenutzt".
id_article | id_index
1 | 1
1 | 2
1 | 4
...
2 | 2
2 | 3
2 | 5
...
Searches_Indexes:
Search
mit id
1 enthält nur 2 Index
es, 'dell' und 'Laptop':
id_search | id_index
1 | 1
1 | 2
Erforderliche Ausgabe:
id_article
1
Tabellen namens Suche und Index ... Welche anderen Tabellen haben Sie - Spalte, wo, wählen und Wert? – jarlh
Aktualisiert, um es ein wenig klarer zu machen. Ich habe zwei Beziehungstabellen 'Search_Indexes' und' Articles_Indexes', die grundsätzlich definieren, welche Suchbegriffe welche Indizes haben und welche Artikel welche Indizes haben. –
[bearbeiten] Sie Ihre Frage und fügen Sie einige Beispieldaten und die erwartete Ausgabe basierend auf diesen Daten hinzu. [_Formatted_] (http://dba.stackexchange.com/help/formatting) ** Text ** bitte, [keine Screenshots] (http://meta.stackoverflow.com/questions/285551/why-may-i -nicht-upload-images-of-code-auf-so-wenn-eine-Frage stellen/285557 # 285557) –