Autor Zpráva
staco
Profil
Pekny den


vela toho este neviem a snad to napisem jasne
Neviem si poradit s tymto problemom:
Mam tri tabulky
1.
user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
skladove_cislo VARCHAR(20) NOT NULL, 
skladove_miesto VARCHAR(20) NOT NULL, 
ENGINE = MyISAM ;

2.
`user_id` INT NOT NULL ,
`prevadzky` VARCHAR( 20 ) NOT NULL ,
`zariadenia` VARCHAR( 20 ) NOT NULL ,
FOREIGN KEY (user_id) REFERENCES site_user(user_id)
) 
ENGINE = MYISAM ;

3.
`image_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`image_username` VARCHAR(20) NOT NULL ,
`image_caption` CHAR(41) NOT NULL ,
`image_date` DATE  NOT NULL ,

a dotaz select:

SELECT u.user_id,
       u.nazov_dielu,
       u.skladove_cislo,
       u.skladove_miesto,
       u.diel_date,
       i.description1,
       i.description2,
       z.image_id,
       z.image_caption
FROM   site_user u,
       site_user_info i,
       images z
WHERE  u.user_id = i.user_id
ORDER  BY diel_date ASC; 

A problem: z prvych dvoch tabuliek mi to vypise tak ako chcem ,ak ale chcem aby mi ku kazdemu user_id priradilo image_id z 3 tabulky
tak vysledkom je bud prazdny vypis
alebo
Takto ako to mam mi sice fotky priradi ale duplicitne(mam napriklad vo vystupe 2x polozky s tym istym id)

Dakujem za ochotu
Sir Tom
Profil
Také pěkný den,

zkus:

SELECT u.*, i.*, z.*
FROM site_user u
JOIN site_user_info i ON u.user_id = i.user_id
JOIN images z ON u.user_id = z.image_id
ORDER BY u.diel_date ASC;

Možná místo JOIN bude třeba napsat LEFT JOIN, popř. RIGHT JOIN - záleží na datech v tabulkách... dotaz jsem nezkoušel - jen tak píšu z hlavy...
Kajman
Profil
staco:

Jak poznáte který obrázek má být ke kterému uživateli? Použité propojení u.user_id = z.image_id moc smyslu nedává.
staco
Profil
Kajman:
$dotaz = 'SELECT
        u.user_id,u.nazov_dielu,u.skladove_cislo,u.skladove_miesto,u.diel_date,i.description1,i.description2,i.prevadzky,i.zariadenia,image_id,image_caption
    FROM
        site_user u ,site_user_info i,images z 
    WHERE    
         u.user_id = i.user_id AND 
         z.image_id = u.user_id
        ORDER BY
        diel_date DESC
        
        LIMIT 25';

Takto mi to funguje ,ale tak som to skusal aj predtym lenze problemy mi robil fakt ,ze image tabulku som vkladal az neskor a pri vkladani mi tym
padom nesedelo user_id s image_id(bolo automaticky generovane databazou) ,po TRUNCATE tabulky to ide

A skusal so aj dotaz od Sir Toma a funguje aj ten

Dakujem za rady!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0