Statistik  Mitglieder gesamt: 68122  Mitglieder online: 0  Gäste online: 0 mehr...
Anzeige
| Thread: view oder join
 11.06.2008 11:03 Uhr
|
|
|
|
|
hallo,
was macht bei einer mysql abfrage mehr sinn, ein view oder eine abfrage mit join´s?
bzw. von welchen kriterien hängt es ab was ich nehmen soll?
lg
der query mit join´s sieht so aus. PHP: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
32
33
34
35
36
37
| $sql = "SELECT
wkz1.ART AS WKZ_ART,
tb_ec_wed.BEMERK_WED,
wkz1.STATUS_WKZ,
tb_ec_cab.STATUS_CAB,
tb_ec_pf.STATUS_PF,
tb_ec_wed.USER,
tb_ec_wed.DATUHR,
tb_ec_wed.ID as wedid,
wkz1.BEZ_WKZ as bez_aktu_wkz,
wkz2.BEZ_WKZ as bez_orig_wkz,
wkz3.WKZ_COUNT as WKZ_COUNT,
tb_ec_pf.SERNUM_PF,
tb_ec_cab.SERNUM_CAB,
tb_ec_zone.BEZ_Z,
wkz1.ID AS wkzid,
tb_ec_pf.ID AS pfid,
tb_ec_cab.ID AS cabid,
wkz1.BEZ_WKZ AS tt,
tb_ec_hmi.ID AS hmiid,
tb_ec_hmi.BEZ_HMI,
tb_agid.ID as AGIDID,
tb_agid.AGID
FROM
tb_ec_wed
LEFT JOIN tb_ec_wkz as wkz1 ON ID_WKZ = wkz1.ID
LEFT JOIN tb_ec_wkz as wkz2 ON ID_WKZ_ORIG = wkz2.ID
LEFT JOIN tb_ec_wkz as wkz3 ON ID_WKZ = wkz3.ID
LEFT JOIN tb_ec_pf ON ID_PF = tb_ec_pf.ID
LEFT JOIN tb_ec_cab ON ID_CAB = tb_ec_cab.ID
LEFT JOIN tb_ec_zone ON ID_ZONE = tb_ec_zone.ID
LEFT JOIN tb_ec_hmi ON ID_HMI = tb_ec_hmi.ID
LEFT JOIN tb_agid ON tb_agid.ID = tb_ec_wed.ID_AGID
WHERE LOCATION_WED = '$location_url'
$gernot
ORDER BY $sort $order"; |
|
|
 11.06.2008 11:34 Uhr
|
|
|
|
|
Bist du sicher, dass du so viele Joins brauchst?
Aus den kryptischen Benenungen deiner Felder kann man ja praktisch nichts herauslesen, sorry.
Die Variable $gernot ist höchstens für ein "WTF...?!" gut.
Und dass du sowohl $sort als auch $order hast, zwingt mir auch ein Lächeln ab.
|
|
 11.06.2008 11:44 Uhr
|
|
|
|
|
ja brauch ich, da ich die daten aus 7 verschiedenen tabellen raushole. und ich kenne nur den joinweg um die daten zusammenzuführen.
$gernot ist nur ein schnipsel SQL wenn nur ein spezieller datensatz gewünscht wird. nix aufregendes. PHP:1
| $gernot = "AND wedid = '$ID'"; |
die bennenungen sind eigentlich net so schwer zu lesen.... aber als schöpfer kann man das bald sagen.
spielt auch nicht so eine rolle.
Zitat: Und dass du sowohl $sort als auch $order hast, zwingt mir auch ein Lächeln ab.
erzähl...
|
|
 11.06.2008 12:18 Uhr
|
|
|
|
|
Naja, aber vielleicht wäre es performancemäßig besser, manche Tabellen gejointe einfach im Vorhinein ganz auszulesen, in ein Array zu speichern und bei der Ausgabe dann die entsprechenden Felder anzuzeigen. Dann kannst du sie aus dem Join herausnehmen.
Zitat: die bennenungen sind eigentlich net so schwer zu lesen
WKZ_ART, BEMERK_WED, STATUS_WKZ, STATUS_PF, DATUHR, wedid, bez_aktu_wkz, bez_orig_wkz, SERNUM_PF, SERNUM_CAB, BEZ_Z, wkzid, pfid, tt, hmiid, BEZ_HMI, AGIDID, AGID
Das nennst du "net so schwer zu lesen"?!? Auf welchem Planeten lebst du denn?
Sorry, aber das ist ja echt ne Katastrophe!
|
|
 11.06.2008 12:29 Uhr
|
|
|
|
|
an das hab ich auch schon gedacht, aber das sind so viele Daten und ich mag einfach net unbedingt mit dem array arbeiten. da mehrere Benutzer gleichzeitig an dern DB rumschrauben können ist es dann auch wieder eine frage der aktualität!
WKZ_ART = Werkzeug art = luftantrieb, elektronisch geregelt, akku
BEMERK_WED = Bemerkung in der tabelle in der die daten verheiratet werden
STATUS_WKZ = staus des werkzeuges, lager, einsatz, schrott, rep
DATURH = datum uhrzeit
wedid = ID des akteullen datensatzes aus der tabelle
SERNUM_CAB = Seriennummer des Kabels
BEZ_HMI = Bezeichnung des HMI (Human machine interface ein rechner)
AGID = Schraubstellennummer
 1 mal bearbeitet tomig: 11.06.2008, 12:30 Uhr
|
|
 11.06.2008 12:35 Uhr
|
|
|
|
|
Zitat: das sind so viele Daten und ich mag einfach net unbedingt mit dem array arbeiten.
Wieso nicht?
Zitat: da mehrere Benutzer gleichzeitig an dern DB rumschrauben können ist es dann auch wieder eine frage der aktualität!
Nö, solange du die Arrays nicht zwischenspeicherst werden die ja pro Seitenaufruf komplett ausgelesen. Falls es hier ein Problem sein sollte, dass mehrere Personen gleichzeitig arbeiten, könntest du mit Locking a) das Problem umgehen und gleichzeitig b) die Performance erhöhen.
LG, bmk.
|
|
 11.06.2008 12:46 Uhr
|
|
|
|
|
locking... mal schauen, wird es aber nicht werden.
array. ich weiß net, eine scheu gegenüber vielleicht.
mal eine testseite mit dem array machen.
Warum , erzähls mir...
Zitat: Und dass du sowohl $sort als auch $order hast, zwingt mir auch ein Lächeln ab.
|
|
|