|
|
|
|
Ich sollte aufhören, bevor es zu spät wird.
|
|
|
|
|
|
|
| Zitat von Zensiert
Ich hab mal wieder eine SQL-Frage :x
Ich hab eine Tabelle mit link_id und tag_id. Gegeben ist eine tag_id und ich möchte nun alle verwandten tag_ids auslesen. Ist das mit einer SQL-Abfrage möglich?
Kris
| |
Was sollen denn "verwandte" tag_ids sein?
|
|
|
|
|
|
|
SirSiggi ist die Obere Schranke der Posts bei c = 1 und n = april
|
|
|
|
|
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
| Zitat von Zensiert
Ich hab mal wieder eine SQL-Frage :x
Ich hab eine Tabelle mit link_id und tag_id. Gegeben ist eine tag_id und ich möchte nun alle verwandten tag_ids auslesen. Ist das mit einer SQL-Abfrage möglich?
Kris
| |
Was sollen denn "verwandte" tag_ids sein?
| |
Ein Link kann ja mehrere Tags haben, d.h. in der Tabelle würde dann stehen
|
Code: |
link_id tag_id
1 1
1 2
1 3
|
|
Ich würde nun gerne - wenn es mit einer Abfrage möglich ist sonst nicht - die 1 übergeben und er gibt mir 2 und 3 zurück
Kris
|
|
|
|
|
|
|
| Zitat von Zensiert
Ein Link kann ja mehrere Tags haben, d.h. in der Tabelle würde dann stehen
|
Code: |
link_id tag_id
1 1
1 2
1 3
|
|
Ich würde nun gerne - wenn es mit einer Abfrage möglich ist sonst nicht - die 1 übergeben und er gibt mir 2 und 3 zurück
| |
Und die 1 die du übergibst, ist das eine tag oder eine link id?
|
|
|
|
|
|
|
Steht doch da
Gegeben ist eine tag_id
Kris
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Zensiert am 18.07.2007 16:32]
|
|
|
|
|
|
Nein, steht es nicht.
Willst du
a) eine Link ID übegeben und alle Tags dieses Links haben
b) eine Tag ID übergeben und alle Links haben die auch diesen Tag haben
a) SELECT tag_id FROM tbl WHERE link_id = X
b) SELECT link_id FROM tbl WHERE tag_id = X
|
|
|
|
|
|
|
Ich habe tag_id (mit dem Wert 1) gegeben. Mit diesem Wert möchte ich nun aus folgender Demotabelle:
|
Code: |
link_id tag_id
1 1
1 2
1 3
|
|
die verwandten tag_ids auslesen. Ich will also alle tags haben, die den gleichen Link haben, wie der mit der tag_id 1.
Ich weiß nicht, ob das mit einer Abfrage möglich ist, in der ich tag_id = 1 setze mir die link_id hole und anhand der link_id alle passenden tag_ids auslese. In diesem Falle sollte er mir dann 2 und 3 liefern.
Ich hoffe das war jetzt verständlich :>
Kris
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Zensiert am 18.07.2007 16:45]
|
|
|
|
|
|
guten Morgen *gaehn*
|
|
|
|
|
|
|
Wie zur Hölle soll das Möglich sein? Es können doch durchaus mehrere Links den selben Tag haben. Wie willst du da anhand einer Tag ID einen Link finden???
|
|
|
|
|
|
|
Ein einfaches "Nein, geht nicht" hätte auch gereicht :x
Kris
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Zensiert am 18.07.2007 16:49]
|
|
|
|
|
|
Es heisst dann aber "Nein, geht nicht."
|
|
|
|
|
|
|
Hm?
Kris
|
|
|
|
|
|
|
| Zitat von v!pe
Intelligente Sachen gepostet: nicht mitgemacht
| |
haette mich auch gewundert
|
|
|
|
|
|
|
| Zitat von Zensiert
Hm?
Kris
| |
!
|
|
|
|
|
|
|
| Zitat von Zensiert
Ein einfaches "Nein, geht nicht" hätte auch gereicht :x
| |
Das hätte dir doch klar sein müssen.
Du hast Tag IDs und mehrer Links können den selben Tag, also die selbe ID, haben. Wie soll man da auf irgendeine Art wissen, welchen Link du meinst, wenn man nur eine Tag ID bekommt? Das könnte nur GodSQL.
|
|
|
|
|
|
|
|
|
|
|
Ich wurde heute mündlich ermahnt, dass meine -34Stunden wohl nur noch schwerlich aufzuholen seien bis Ende August
Und in der Tat, ich habe hier noch 26 Tage abzusitzen. Und da muss ich jetzt ja im Schnitt immerhin 1 Stunde und 18 Minuten am Tag überstunden machen, um hinther auf 0-0 rauszukommen
Gleitzeit ist böse!
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GH@NDI am 18.07.2007 17:01]
|
|
|
|
|
|
| Zitat von GH@NDI
Ich wurde heute mündlich ermahnt, dass meine -34Stunden wohl nur noch schwerlich aufzuholen seien bis Ende August
Und in der Tat, ich habe hier noch 26 Tage abzusitzen. Und da muss ich jetzt ja im Schnitt immerhin 1 Stunde und 18 Minuten am Tag überstunden machen, um hinther auf 0-0 rauszukommen
Gleitzeit ist böse!
| |
Und was ist, wenn du das nicht schaffst? Praktikum nicht anerkannt?
|
|
|
|
|
|
|
Entweder ich schmeiss was von meinem Urlaub zum Ausgleich in den Pott oder die Vergütung wird eben entsprechend der nicht erbrachten Leistung angepasst
|
|
|
|
|
|
|
Ich hab die Schnauze voll vom lernen
|
|
|
|
|
|
|
Aber lernen ist doch wichtig! Schlieslich tut man das angeblich sein ganzes Leben lang
|
|
|
|
|
|
|
Man kann doch zwei Abfragen machen:
1. LinkId zur TagId rausfinden
2. alle TagIds zur LinkId rausfinden
oder versteh ich da was falsch?
|
|
|
|
|
|
|
| Zitat von Ashtray
Man kann doch zwei Abfragen machen:
1. LinkId zur TagId rausfinden
2. alle TagIds zur LinkId rausfinden
oder versteh ich da was falsch?
| |
Ja, denn 1. ist nicht möglich, da 1 bis n Links diese Tag-ID haben können.
Natürlich ginge es, sich alle Links die diesen Tag haben zu holen und sich dann alle Tags dieser Links zu besorgen, aber wo läge da bitte der Sinn?
Dass wäre dann - freihändig - sowas:
SELECT tag_id FROM tbl WHERE link_id IN (SELECT link_id FROM tbl WHERE tag_id = X ) GROUP BY tag_id
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Achsel-des-Bösen am 18.07.2007 17:28]
|
|
|
|
|
|
Du kannst theoretisch einen Join mit der selben Tabelle nochmal machen. Du bekommst dann halt nur dummerweise n^n Ergebnissreihen raus. Das wird also sehr schnell sehr unperformant.
Am besten ist da wirklich erst die Tag IDs zu ermitteln, die einen interessieren und dann alle Link IDs anhand der gewünschten Tag ID zu beziehen.
Das ganze kann man sich ja schön in eine Stored Procedure oder so hinterlegen wenn man mag
|
|
|
|
|
|
|
| Zitat von Zensiert
Ich habe tag_id (mit dem Wert 1) gegeben. Mit diesem Wert möchte ich nun aus folgender Demotabelle:
|
Code: |
link_id tag_id
1 1
1 2
1 3
|
|
die verwandten tag_ids auslesen. Ich will also alle tags haben, die den gleichen Link haben, wie der mit der tag_id 1.
Ich weiß nicht, ob das mit einer Abfrage möglich ist, in der ich tag_id = 1 setze mir die link_id hole und anhand der link_id alle passenden tag_ids auslese. In diesem Falle sollte er mir dann 2 und 3 liefern.
Ich hoffe das war jetzt verständlich :>
Kris
| |
rein prinzipiell sollte es gehen, wenn du dir in einem subselect die link_id zur tag_id holst und dann im hauptjoin damit alle tag_ids, die diese link_id haben. poste mal den genauen aufbau der tabellen, dann gibts dazu auch ein sql.
€dith flüstert mir grad, dass du folgendes mal probieren könntest:
SELECT tag_id FROM tabelle WHERE link_id = (SELECT link_id FROM tabelle WHERE tag_id = 1)
€dith flüstert mir ein zweites mal: es sollte gehen, laut manual.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von rABBI am 18.07.2007 17:33]
|
|
|
|
|
|
|
PHP: |
SELECT tag_id FROM table
WHERE link_id = (SELECT link_id FROM table WHERE tag_id = @tagId) AND tag_id <> @tagId
|
|
|
|
|
|
|
|
|
| Zitat von rABBI
€dith flüstert mir grad, dass du folgendes mal probieren könntest:
SELECT tag_id FROM tabelle WHERE link_id = (SELECT link_id FROM tabelle WHERE tag_id = 1)
€dith flüstert mir ein zweites mal: es sollte gehen, laut manual.
| |
Edith hat mir gesagt, dass = nur funktioniert, wenn die Unterabfrage einen Skalar zurück gibt, oder man das Keyword ANY zusätzlich verwendet, was allerdings ein Alias für IN ist.
|
|
|
|
|
|
|
So hat man mal ne hübsche Übersicht:
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |