16. februar 2003 - 03:15Der er
4 kommentarer og 1 løsning
to gange "select as" i samme forespørgsel?
Jeg er i gang med at lave et email arkiv og har hældt mine gamle mails ind i disse tre tabeller. De mails vil jeg så gerne hive ud igen, så man kan se hvem mailen er fra, og hvem den er til, dato, og emne, men jeg kan ikke lige få på plads hvordan jeg kombinerer nedenstående to pseudo sql statements til eet statement såldes at jeg i een og samme forespørgsel får både en "til" og en "fra" kolonne
select subject, body, name as to from Persons, Tofrom, Mails where date = "20030214" and Mails.id = mail_id and status = "to" and pers_id = Persons.id
select subject, body, name as from from Persons, Tofrom, Mails where date = "20030214" and Mails.id = mail_id and status = "from" and pers_id = Persons.id
Persons: id name email 1 yy xx@xx 3 reg ge@sdf
Tofrom: mail_id pers_id status 54 3 to 54 1 from 76 3 from 76 1 to
Mails: id date subject body 54 20030214 mailarchive blah blah
SELECT Mails.date,Mails.subject,PersonsFrom.email,PersonsTo.email FROM Mails,ToFrom AS ToFromTo,ToFrom AS ToFromFrom,Persons AS PersonsTo,Persons as PersonsFrom WHERE Mails.id=ToFromTo.mail_id AND Mails.id=ToFromFrom.mail_id AND ToFromTo.status='to' AND ToFromFrom.status='from' AND ToFromTo.pers_id=PersonsTo.id AND ToFromFrom.pers_id=PersonsFrom.id;
Jeg må blankt erkende to ting: 1) Det virker sørme 2) Jeg fatter ikke en brik af det... Når jeg forsøger at læse det kløjs jeg fuldstændigt i det, lidt ala "bispens gips-gebis" 3) Der kommer ikke to kolonner hvor den ene hedder ToFromTo og den anden hedder ToFromFrom, de kommer til at hedde email og email_1 (Det er en MySql base) men det er også ligegyldigt, det virker fint alligevel.
SELECT Mails.date,Mails.subject,PersonsFrom.email as emailFrom,PersonsTo.email as emailTo FROM Mails,ToFrom AS ToFromTo,ToFrom AS ToFromFrom,Persons AS PersonsTo,Persons as PersonsFrom WHERE Mails.id=ToFromTo.mail_id AND Mails.id=ToFromFrom.mail_id AND ToFromTo.status='to' AND ToFromFrom.status='from' AND ToFromTo.pers_id=PersonsTo.id AND ToFromFrom.pers_id=PersonsFrom.id;
Groft sagt bruger jeg 2 eksemplarer af Persons og 2 eksemplarer af ToFrom.
Og så laver jeg bar en almindelig join mellem de 5 tabeller.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.