Frage : Helfen, SQL in der Aussage als zu verwenden „UND“

Ich habe ein Gefühl dort bin keine Weise, dies zu tun, aber dargestellt würde ich irgendwie bitten.  Ich führe einen Satz Umbauten zu meinem sproc (SQL-Server) im CSV Format.  Etwas Ähnliches:

sp_articlesByTag 'Bücher, Parameter des cars'< Brs/>
The wird zu meinem (vereinfachten) SQL-Code -

SELECT * von den Artikeln geführt, IN DENEN Umbauten (@tagparam) im

Unfortunately es die Resultate zurückbringt, die Bücher ODER Autos enthalten.  Ich wünsche es Bücher und Autos zurückbringen.  Ich suche gerade nach etwas ein bisschen eleganter, als, das, die CSV und das Errichten WO Aussage im sproc.

Thanks analysierend im Voraus für irgendein help.

PS sind - gerade so ich gebe eine komplette Abbildung, ist mein benennender Code klassisches Asp und ich verwende ein StaplungsQuerystring, um die Umbauten zu erhalten.  (IE:  search.asp? tag=books&tag=cars, das „Bücher zurückbringt, Autos“ zu mir)

Antwort : Helfen, SQL in der Aussage als zu verwenden „UND“

WENN alle Spalten im AUSERWÄHLTEN „von den view_publicstories“ sind, sollte etwas wie below es tun.

Wenn nicht, können Sie müssen Re-join zum tbl_taglink.

Jede Weise, sollte es geben Ihnen eine gute Idee von, was Sie tun müssen.

BTW, beim Beschäftigen mehrfache Tabellen in einer Frage, Ihr Code viel einfacher zu schreiben und zu folgen ist, wenn Sie dort Richtlinien folgen:

1) IMMER alias alle Tabellen
2) Wenn es mehr als eine Tabelle in einer Frage gibt, die Tabelle alias auf JEDER Spalte im AUSERWÄHLTEN benutzen.  Dieses bildet es einfach, zu erklären, welche Spalte kommt von, welcher Tabelle.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
ANSI_NULLS AN einstellen
QUOTED_IDENTIFIER AN einstellen
GEHEN
VERFAHREN [dbo] ÄNDERN. [sp_getStoriesByTag]
	@tagname varchar (2000),
	@sort int
WIE
ANFANGEN
	NOCOUNT AN EINSTELLEN;
	@sql ERKLÄREN, wie varchar (2000)
    @tagcount als int ERKLÄREN
    @TAGCOUNT = LEN (@TAGNAME) - LEN EINSTELLEN (ERSETZEN (@TAGNAME, „,“, '')) + 1

    @sql EINSTELLEN = 'VORWÄHLEN EINDEUTIGES recid, Autor, view_publicstories.recdate, Titel, storycodes, Bewertung, Klassifizierung, Ansichten, Seiten
			Von den INNEREN view_publicstories VERBINDEN (
                Storyid VORWÄHLEN
                Vom tbl_taglink
                WO tagid INNEN (
                    Tagid VORWÄHLEN
                    Von den tbl_tags
                    WO (tagname innen („+ @tagname + ")))
                GRUPPE DURCH storyid
                ZÄHLIMPULS HABEN (*) = „+ GEWORFEN (@tagcount, WIE varchar (10)) + ") ALS Gleiche
            AUF (view_publicstories.recid = matches.storyid) 
				AUFTRAG DURCH '+ FALL @SORT 
                    WENN 1 DANN „view_publicstories.ranking“
                    WENN 2 DANN „view_publicstories.rating“
                    WENN 3 DANN „view_publicstories.title“
                    SONST „0“
                    ENDE
        EXEC (@sql)
Weitere Lösungen  
 
programming4us programming4us