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

08-03-2003, 01:16
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
SELECT und doppelte Datensätze
Hi Leute,
hab mal wieder ein Problem...;-)
Zwei Tables, gesucht wird mit Volltextsuche über zwei Felder (eine Überschrift im ersten Table und einem Text im 2. Table) Es sind nun Datensätze vorhanden, die zwar eine unterschiedliche ID haben, jedoch die gleiche Überschrift. Wie schaffe ich es nur die Datensätze zu bekommen die sowohl unterschiedliche ID haben als auch unterschiedliche überschriften??? Mit DISTINCT kam ich zu keinem Erfolg...
SELECT DISTINCT table1.headline, table1.id, table2.text FROM table1, table2 WHERE .... ORDER BY table1.headline ASC LIMIT $offset, 20
Hat jemand ein Vorschlag??
Greetz,
Bobby
|

08-03-2003, 01:25
|
|
Troublegum
PHP Senior
|
|
Registriert seit: Dec 2001
Beiträge: 1.302
|
|
Probiers mal so:
SELECT table1.headline, table1.id, table2.text FROM table1, table2 WHERE (table1.id<>table2.id AND table1.headline<>table2.headline) ORDER BY table1.headline ASC LIMIT $offset, 20
__________________
"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"
"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "
"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."
© Harald Schmidt
|

08-03-2003, 01:30
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
hi...ich glaub ich hab zu wenig info gegeben...;-)
Table 1 besteht nur aus ID (Primary Key), Table, und Rubrikinfos
Table 2 aus ID (PrimaryKey), relationID (der ID aus Table1), Text, und sonstiges...
es geht nun darum, dass eine Volltextsuche über table1.headline und table2.text laufen soll und alle Begriffe wie z.b auto finden soll...
nun gibt es doppelte headlines, aber mir unterschiedlicher ID. Dieses will ich vermeiden und jede Überschrift nur einmal herauslesen
|

08-03-2003, 01:38
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
poste mal die mit phpMyAdmin exportierten tabellen strukturen und sage noch mal genau, wie du die daten brauchst und in welchem zusammenhang diese stehen.
ich habe irgendwie grad den überblick verloren...
parallel kannst du mal dies probieren
Code:
SELECT *
FROM table1 T1
LEFT OUTER JOIN table2 T2 ON T1.ID = T2=relationID
ist aber ohne WHERE.
kommen die daten immer noch korrekt raus? unabhängig von der menge.
|

08-03-2003, 01:43
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
tables
so..hier die beiden tables...
CREATE TABLE Table1 (
id int(5) NOT NULL default '0',
headline varchar(255) NOT NULL default '',
cat1 varchar(60) NOT NULL default '',
cat2 varchar(60) NOT NULL default '',
cat3 varchar(60) NOT NULL default '',
PRIMARY KEY (id),
KEY Information Index (headline)
) TYPE=MyISAM
CREATE TABLE table2 (
id int(5) unsigned NOT NULL auto_increment,
relationID int(5) unsigned NOT NULL default '0',
content longtext NOT NULL,
hits int(6) NOT NULL default '0',
source varchar(100) NOT NULL default '',
author varchar(100) NOT NULL default '',
user varchar(50) NOT NULL default '',
date datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
KEY relationID (relationID)
) TYPE=MyISAM;
|

08-03-2003, 01:45
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
und die weiteren infos, die ich angefordert hatte?
anfordern.... wie das klingt....
|

08-03-2003, 01:50
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
ups..
ups...ganz vergessen ...
ich brauche table1.headline, table1.cat1 - table1.cat3 table1.id
gesucht werden soll aber ein begriff über table2.content und table1.headline ...bsp. %auto%...
wenns geht ohne joins....*g*...
|

08-03-2003, 01:56
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
ohne join wird wohl nicht sauber und performance-sparend gehen.
das müsste passen.
Code:
SELECT DISTINCT T1.headline,
T1.cat1,
T1.cat2,
T1.cat3,
T1.id
FROM table1 T1
LEFT OUTER JOIN table2 T2 ON T1.ID = T2.relationID
WHERE T2.content LIKE '%auto%' OR
T1.headline LIKE '%auto%'
EDIT: tippfehler korrigiert
Geändert von Abraxax (08-03-2003 um 02:02 Uhr)
|

08-03-2003, 02:03
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
muss die T1 und T2 durch irgendwas ersetzten ???
|

08-03-2003, 02:08
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
nein. das sind aliase für table1 und table2.
bin zu faul zum tippen...
|

08-03-2003, 02:14
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
hey ...super ..das geht astrein....tausend dank !!!
wie würde der SELECT denn aussehen für auto AND (cabrio OR pkw)
|

08-03-2003, 02:15
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
halt stop...des geht doch nicht ..wenn drei headlines gleich sind, werden die dennoch alle drei ausgegeben.....
|

08-03-2003, 02:17
|
|
Troublegum
PHP Senior
|
|
Registriert seit: Dec 2001
Beiträge: 1.302
|
|
Dann lass mal das DISTINCT weg und gruppiere die Abfrage nach T1.headline.
__________________
"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"
"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "
"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."
© Harald Schmidt
|

08-03-2003, 02:20
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Zitat:
Original geschrieben von BobbyX
wie würde der SELECT denn aussehen für auto AND (cabrio OR pkw)
|
logischerweise die WHERE clausel erweitern !!!
Code:
WHERE (T2.content LIKE '%auto%' OR
T1.headline LIKE '%auto%')
AND
(T2.content LIKE '%cabrio%' OR
T1.headline LIKE '%cabrio%' OR
T2.content LIKE '%pkw%' OR
T1.headline LIKE '%pkw%')
|

08-03-2003, 02:31
|
|
BobbyX
Newbie
|
|
Registriert seit: Mar 2003
Beiträge: 25
|
|
ok ..jetzt gehts...nochmal vielen dank für deine hilfe :-)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| 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.
HTML-Code ist aus.
|
|
|
|
PHP News
|