php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 03-12-2007, 08:39
MaxP0W3R
 PHP Senior
Links : Onlinestatus : MaxP0W3R ist offline
Registriert seit: Dec 2003
Ort: Ludwigshafen
Beiträge: 1.809
MaxP0W3R ist zur Zeit noch ein unbeschriebenes Blatt
Standard Verbindungen suchen

Hi,

es gibt eine Tabelle mit den spalten ids1, ids2

Diese symbolisieren die Verbindung zwischen 2 Personen.

Beispieltabelle
Code:
ids1    ids2
 1         2
 1         3
 4         1
 4         2
Jetzt geht es darum, die gemeinsamen Freunde von z.B. 1 und 4 zu finden (das wäre dann hier nur die 2)

Mein bisheriger Lösungsansatz:
Alle Datensätze mit ids von Person 1, dann alle Datensätze von Person 2 und die dann verbinden, aber dadurch, dass halt die jeweiligen is an 1. oder 2. STelle stehen können, wirds schwierrig und so ist am Ende jeder mit jedem verbunden, obwohl das nicht stimmt.

hier mal der Query:
Code:
String query = "SELECT * FROM verbindungen v1 
WHERE ids1 = '"+ids+"' || ids2 = '"+ids+"'"
+ " 
&& EXISTS (SELECT * FROM verbindungen v2 
WHERE (v1.ids1 = v2.ids1 && v1.ids1 NOT LIKE '"+ids+"' && v2.ids2 = '"+friend_ids+"') 
|| (v1.ids1 = v2.ids2 && v1.ids1 NOT LIKE '"+ids+"' && v2.ids1 = '"+friend_ids+"') 
|| (v1.ids2 = v2.ids1 && v1.ids2 NOT LIKE '"+ids+"' && v2.ids2 = '"+friend_ids+"') 
|| (v1.ids2 = v2.ids2 && v1.ids2 NOT LIKE '"+ids+"' && v2.ids1 = '"+friend_ids+"') )";
Hat hier jmd. eine Idee ?

Oder kann man z.B. in einer query spaltenwerte vertauschen ? so dass wenn nach einem datensatz gesucht wird der in s1 oder s2 sein kann, der immer in s1 als ausgabe geschrieben wird ?


Das ganze is für ein kleines akademisches Projekt, es wurde ein freundesnetzwerk (mit offizieller erlaubnis) ausgelesen und alles in eine Mysql 5.0.24 db geschrieben


vielen dank

cya max
__________________


An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )
Mit Zitat antworten
  #2 (permalink)  
Alt 03-12-2007, 10:31
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Versuchs mal so:
Code:
SELECT
	ids1,
	ids2
FROM
	verbindungen v1
WHERE
	(ids1 = $ids
	AND EXISTS(
		SELECT
			ids1
		FROM verbindungen v2
		WHERE ids1 = $friend_ids
		    AND v1.ids2 = v2.ids2
		)
	)
OR
	(ids2 = $ids
	AND EXISTS(
		SELECT
			ids1
		FROM verbindungen v2
		WHERE ids2 = $friend_ids
		    AND v1.ids1 = v2.ids1
		)
	)
__________________
Gruss
H2O
Mit Zitat antworten
  #3 (permalink)  
Alt 03-12-2007, 14:11
MaxP0W3R
 PHP Senior
Links : Onlinestatus : MaxP0W3R ist offline
Registriert seit: Dec 2003
Ort: Ludwigshafen
Beiträge: 1.809
MaxP0W3R ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hi,

funktioniert leider nicht, ich krieg x-mal die ids, die ich übergeben, als ausgabe...

bin langsam am verzweifeln, so schwer isses eigentlich nicht -.-
__________________


An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )
Mit Zitat antworten
  #4 (permalink)  
Alt 03-12-2007, 15:51
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von MaxP0W3R
funktioniert leider nicht, ich krieg x-mal die ids, die ich übergeben, als ausgabe...
Kannst du das noch auf deutsch übersetzen?

Hier mal das Bsp.:
Code:
mysql> select var1, var2 from tab1;
+------+------+
| var1 | var2 |
+------+------+
|    1 |    2 | 
|    1 |    3 | 
|    4 |    1 | 
|    4 |    2 | 
|    5 |    6 | 
|    7 |    8 | 
|    8 |    1 | 
|    8 |    4 | 
+------+------+
8 rows in set (0.00 sec)

mysql> select var1, var2 from tab1 t1
    -> where (var1 = 1 
    -> and exists(select var1 from tab1 t2 where var1 = 4 and t1.var2 = t2.var2))
    -> OR (var2 = 1 
    -> and exists(select var1 from tab1 t3 where var2 = 4 and t1.var1 = t3.var1));
+------+------+
| var1 | var2 |
+------+------+
|    1 |    2 | 
|    8 |    1 | 
+------+------+
2 rows in set (0.00 sec)
also genau das, was du willst.
__________________
Gruss
H2O
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:39 Uhr.