Probleem met JOIN

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Spike Spade

Spike Spade

22/07/2010 14:55:19
Quote Anchor link
Oke ik heb een probleem met het ophalen van bepaalde data.

Ik heb 4 tabellen.

-------------
|ranges
|===========
|id
|name
-------------

------------------------
|configuration_items
|======================
|id
|name
|price
|configuration_list_id
------------------------

----------------------------
|configuration_item_ranges
|==========================
|range_id
|configuration_item_id
----------------------------

----------------------
|configuration_lists
|====================
|id
|name
----------------------

Een configuration_list bestaat uit meerdere configuration_items
Een configuration_item is uniek op een combinatie van ranges per configuration_list

Het aantal ranges per configuration_item is ook nog variabel, maar daar zal ik jullie op dit moment niet mee lastig vallen. Dus we gaan er even vanuit dat een configuration_item aan 2 ranges zit.

Dus configuration_list 1 kan bijvoorbeeld bestaan uit
-------------------------------------------------
|configuration_item_id |price |range 1 |range 2 |
|===============================================|
|1_____________________|5_____|1_______|2_______|
|2_____________________|6_____|1_______|3_______|
-------------------------------------------------

Configuration_list 2 kan bestaan uit
-------------------------------------------------
|configuration_item_id |price |range 1 |range 2 |
|===============================================|
|3_____________________|7_____|1_______|2_______|
|4_____________________|3_____|1_______|4_______|
-------------------------------------------------

Probleem stelling

Nu wil ik een configuration_item ophalen terwijl ik het configuration_list_id heb, en de bijbehorende range_ids.

Nu heb ik daar de volgende query voor (maar deze werkt niet naar behoren:

SELECT
ci.*
FROM
configuration_items ci
LEFT JOIN
ranges r
ON
ci.ranges_id = r.id
AND
ci.ranges_id = 1
AND
ci.ranges_id = 4
WHERE
ci.configuration_list_id = 2
LIMIT 0,1

Hier zou ik dus configuration item 4 moeten krijgen. Maar ik krijg 3.

Ik heb wel een oplossing met inner selects, maar dit is ontzettend traag, dus geen optie.

Wie helpt me!
Gewijzigd op 22/07/2010 15:04:49 door Spike Spade
 
PHP hulp

PHP hulp

22/12/2024 08:30:22
 
Spike Spade

Spike Spade

22/07/2010 14:55:49
Quote Anchor link
moment, moet de tabellen even duidelijker maken. Spaties werden gestript
 
Spike Spade

Spike Spade

22/07/2010 15:06:10
Quote Anchor link
(sorry krijg mijn reactie niet verwijderd)
Gewijzigd op 22/07/2010 15:07:11 door Spike Spade
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.