[SOLVED] sql multiple join

Γενικές συζητήσεις για SQL και SQL Servers (RDBMS)

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

[SOLVED] sql multiple join

Δημοσίευση από Khronos » 01 Απρ 2011 20:39

Έχω 2 πίνακες, products και images

Κώδικας: Επιλογή όλων

products
----------
id
title

images
---------
id
product_id
image
Ενα product μπορεί να έχει παραπάνω απο ένα images.
Θέλω να παίρνω μια λίστα με τα products αλλά με ΕΝΑ τυχαίο image απο αυτά που τυχόν έχει το κάθε product.

Εχω γράψει αυτό

Κώδικας: Επιλογή όλων

SELECT p.id,
               title,
               image
        FROM products p 
        INNER JOIN images pi
        ON p.id = pi.product_id";
αλλά αν έχει πχ. 2 images ένα product μου φέρνει 2 γραμμές με το ίδιο product.
Πώς μπορώ να το διορθώσω?
Τελευταία επεξεργασία από το μέλος Khronos την 02 Απρ 2011 16:20, έχει επεξεργασθεί 1 φορά συνολικά.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

[SOLVED] sql multiple join

Δημοσίευση από Apostolis_38 » 01 Απρ 2011 21:26

Κάτι τέτοιο;

Κώδικας: Επιλογή όλων

SELECT p.id,
               title,
               image
        FROM products p
        INNER JOIN images pi
        ON p.id = pi.product_id
ORDER BY RAND()
LIMIT 0,1"; 

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

[SOLVED] sql multiple join

Δημοσίευση από fafos » 01 Απρ 2011 23:28

Κώδικας: Επιλογή όλων

SELECT p.id , p.title,
(select image from images WHERE product_id=p.id ORDER BY RAND() LIMIT 1) AS image
FROM products p 
ORDER BY p.id
auto tha sta listarei symfona me to id.. emfanizei omos kai ta products pou den exoun kapoio image opote prepei na feiaxeis mia synthikh pou na emfanizei ena "no image" h na mhn emfanizei katholou to product..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

[SOLVED] sql multiple join

Δημοσίευση από pimpogio » 02 Απρ 2011 02:34

left join tote

Κώδικας: Επιλογή όλων

SELECT p.id,p.title,pi.image
FROM products p LEFT JOIN images pi
ON p.id = pi.product_id ORDER BY RAND() LIMIT 0,1 

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

[SOLVED] sql multiple join

Δημοσίευση από Khronos » 02 Απρ 2011 16:19

Σας ευχαριστώ όλους για τις απαντήσεις.
Fafo αυτό ακριβώς χρειαζόμουν! ;)

Απάντηση

Επιστροφή στο “Βάσεις Δεδομένων και SQL - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες