php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.12.2004, 19:28  
Gast
 
Beiträge: n/a
Standard [Erledigt] Suche mit mehreren unterschiedlichen Tabellen

Hiho.
Ich hab eine Frage:
Ich habe 2 unterschiedliche Tabellen:

einmal:
Code:
CREATE TABLE `dynnews_docs` (
  `id` int(255) NOT NULL auto_increment,
  `headline` text NOT NULL,
  `content` longtext NOT NULL,
  `cmd_name` text NOT NULL,
  `lang` text NOT NULL,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `headline` (`headline`,`content`)
) TYPE=MyISAM;
und einmal:
Code:
CREATE TABLE `dynnews_glossar` (
  `id` int(255) NOT NULL auto_increment,
  `name` text NOT NULL,
  `description` text NOT NULL,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `name` (`name`,`description`)
) TYPE=MyISAM;
so.

Jetzt habe ich eine Suche in denen in Beiden Tabellen gesucht werden soll. Bisher habe ich ich die beiden Seperat abgefragt
einmal mit:
Code:
SELECT id,headline,content,cmd_name FROM dynnews_docs WHERE content LIKE '%$look_for%'
und einmal mit:
Code:
SELECT id,name,description FROM dynnews_glossar WHERE description LIKE '%$look_for%'
und dann jeweils in einer schleife runtergerasselt.

Wie kann ich das (vieleicht mit Join(t)s?) in eine Abfrage bringen?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.12.2004, 19:40  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

gib mal gerade ein paar inserts .. danke.
imported_Ben ist offline   Mit Zitat antworten
Alt 30.12.2004, 19:41  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Aus Sicht der Perfomance würde ich das lieber nicht in einem Join machen.... Was ist an zwei Selects so falsch?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 30.12.2004, 20:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
Aus Sicht der Perfomance würde ich das lieber nicht in einem Join machen.... Was ist an zwei Selects so falsch?
Aso habisch vergessen: die beiden Tabellen haben jeweils ein feld mit einer art überschrift die dann beim ausgeben angezeigt wird (Felder Tabelle:dynnews_docs Feld: headline|Tabelle:dynnews_glossar Feld: name). Diese hätte ich gerne Alphabetisch sortiert...


Zitat:
gib mal gerade ein paar inserts .. danke.
m'kay wennes brauchst:
Code:
INSERT INTO `dynnews_docs` (`id`, `headline`, `content`, `cmd_name`, `lang`) VALUES 
(1, 'Rechtliches', '<h1>Rechtliches</h1>\r\n<hr no[.......]','license','de');
 
//////////////

INSERT INTO `dynnews_docs` (`id`, `headline`, `content`, `cmd_name`, `lang`) VALUES 
(2, 'Nochwas', '<h1>dumdidum...</h1>\r\n<hr no[.......]','anotherone','en');

//////////////

INSERT INTO `dynnews_docs` (`id`, `headline`, `content`, `cmd_name`, `lang`) VALUES 
(3, 'Mal was gaaaanz anderes', '<h1>Not Yet Another News System: dynnews</h1>\r\n<hr no[.......]','blablakey','de');

//////////////

INSERT INTO `dynnews_docs` (`id`, `headline`, `content`, `cmd_name`, `lang`) VALUES 
(4, 'Werbung', '<h1>Ey Leute besucht alle mal dynphp.net^^</h1>\r\n<hr no[.......]','adversiting','de');


////////////// Tabelle 2 (dynnews_glossar)

INSERT INTO `dynnews_glossar` VALUES (8, 'Admin', 'siehe Administrator');
INSERT INTO `dynnews_glossar` VALUES (9, 'Superuser', 'siehe Administrator');
INSERT INTO `dynnews_glossar` VALUES (10, 'Logout', 'siehe Ausloggen');
INSERT INTO `dynnews_glossar` VALUES (11, 'Ausloggen', 'Wenn sie nach dem erfolgreichen Einloggen [...] neu Einloggen.');
INSERT INTO `dynnews_glossar` VALUES (12, 'Einloggen', 'Wenn sie den Administratorbereich betreten wollen loggen sie sich ein.');
INSERT INTO `dynnews_glossar` VALUES (13, 'LogIn', 'siehe Einloggen');
Zurfrieden? Wofür du das brauchst weiss ich allerdings net?!
  Mit Zitat antworten
Alt 30.12.2004, 20:19  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
Wofür du das brauchst weiss ich allerdings net?!
na wozu wohl!?

die tabellen sind auf keine weise miteinander verknüpft? dann brauchst du auch kein JOIN, wozu auch ...
__________________
derHund ist offline   Mit Zitat antworten
Alt 30.12.2004, 20:23  
Gast
 
Beiträge: n/a
Standard

Zitat:
die tabellen sind auf keine weise miteinander verknüpft? dann brauchst du auch kein JOIN, wozu auch ...
und nu?
  Mit Zitat antworten
Alt 31.12.2004, 11:37  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Wenn du eine gemeinsame Sortierung eines Feldes aus den beiden Tabellen brauchst, versuch es mit einem UNION, z.B.
Code:
SELECT id, headline, content, cmd_name 
    FROM dynnews_docs 
    WHERE content LIKE '%$look_for%'
UNION
SELECT id, name, description, '' 
    FROM dynnews_glossar 
    WHERE description LIKE '%$look_for%'
    ORDER BY 2 ;
Wichtig ist dabei, dass du in beiden Abfragen die gleiche Anzahl Felder (deshalb die leere Konstante in der zweiten Abfrage) vom gleichen Typ hast.
Noch einige Anmerkungen zu den Tabellen:
  • Was ist int(255)
    Die FULLTEXT KEYS nützen dir für eine Abfrage mit like nichts.
    Bist du sicher, dass du die grossen Text-Typen brauchst (text = 65'536 Bytes, longtext = 4'294'967'295 Bytes, das sind ein paar Bücher)
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 31.12.2004, 17:16  
Gast
 
Beiträge: n/a
Standard

Vielen Dank! Werd das bei gelegenheit (=> Heut is immerhin Silvester)
testn


Zitat:
Was ist int(255)
Ein SQL Integer der Maximal 255 Stellen hat.
Zitat:
Die FULLTEXT KEYS nützen dir für eine Abfrage mit like nichts.
I know! Die brauch ich allerdings anner anderen Stelle.
Zitat:
Bist du sicher, dass du die grossen Text-Typen brauchst (text = 65'536 Bytes, longtext = 4'294'967'295 Bytes, das sind ein paar Bücher)
In der Tabelle wird eine Doku gespeichert. Ich weiss noch nicht Wie Lang bestimmte Text werden...


[EDIT]
OK Danke Danke...
Klappt wunderbar^^
  Mit Zitat antworten
Alt 31.12.2004, 17:22  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

LONGTEXT-länge werden sie sicherlich nicht erreichen.
imported_Ben ist offline   Mit Zitat antworten
Alt 31.12.2004, 17:39  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Du-weisst-schon-wer
Zitat:
Was ist int(255)
Ein SQL Integer der Maximal 255 Stellen hat.
Dann versuch mal mehr als 10 Stellen in einem Integer zu speichern. Ein Integer ist immer vier Byte lang. Damit ist die grösst möglich Zahl ±2'147'483'647, bzw. 4'294'967'295 bei unsigned. Die Längenangabe bezieht sich nur auf die Ausgabe und ist meistens sowieso überflüssig.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
löschen in mehreren Tabellen maeck Datenbanken 5 10.07.2008 23:19
Zeilen aus mehreren Tabellen löschn mit Bezug auf eine Table Riks Datenbanken 3 25.02.2007 20:17
select mit inhalten aus mehreren Tabellen wurtzel Datenbanken 6 02.12.2006 17:37
Bestimmte ID in mehreren Tabellen suchen Dummy2006 PHP Tipps 2006 10 01.06.2006 21:54
suche in zwei tabellen? EvilDragon Datenbanken 4 19.04.2006 12:24
Aus mehreren Tabellen (Foren) den Top User ermitteln wizzardxx PHP Tipps 2006 9 15.02.2006 10:39
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
[Erledigt] werte aus mehreren tabellen auslesen Datenbanken 5 18.09.2005 13:45
[Erledigt] MySQL Abfrage aus mehreren Tabellen Datenbanken 1 12.04.2005 17:53
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
[Erledigt] Löschen in mehreren Tabellen gleichzeitig Datenbanken 2 05.12.2004 00:43
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23
suche über 8 tabellen PHP Tipps 2004 3 03.09.2004 12:48
[Erledigt] fulltext suche priorität von tabellen setzen Datenbanken 1 09.08.2004 15:26
letztes Datum aus mehreren Tabellen wizzardxx PHP Tipps 2004 6 05.07.2004 23:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
text suchen in mehreren tabellen, sql zahl in mehreren tabellen suchen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.