Inner join of iets anders??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dorine Boss

Dorine Boss

08/03/2021 09:40:42
Quote Anchor link
Hi,


Ik heb 3 mysql tabellen die ik wil verbinden

1) categories met category_id en name
2) retailers met retailer_id
3) retailer_to_category met retailer_id en category_id

Nu wil ik enkel de 'name' in categories selecteren.

Ik heb al bijna alles geprobeerd maar alsnog zonder resultaat.

Voorbeeld van wat ik heb geprobeerd:

$query = "SELECT s.name, c.retailer_id, b.retailer_id
FROM categories s
INNER JOIN retailer_to_category b ON s.category_id = b.category_id
INNER JOIN retailers c ON b.retailer_id = c.retailer_id";

Maar dit geeft enkel de eerste categorienaam weer die in de database tabel staat, gelijk welke retailer ik selecteer


Iemand de oplossing voor mij?
 
PHP hulp

PHP hulp

14/04/2021 10:16:00
 
Ward van der Put
Moderator

Ward van der Put

08/03/2021 10:09:44
Quote Anchor link
Dorine Boss op 08/03/2021 09:40:42:
Ik heb 3 mysql tabellen die ik wil verbinden

1) categories met category_id en name
2) retailers met retailer_id
3) retailer_to_category met retailer_id en category_id

Nu wil ik enkel de 'name' in categories selecteren.

Als je alleen de namen van de categorieën wilt weten, en dus niets van de retailers hoeft te weten, heb je uitsluitend de tabel categories nodig:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT name
  FROM categories
 
Dorine Boss

Dorine Boss

08/03/2021 10:31:10
Quote Anchor link
Hi Ward,

Ben ik mee akkoord, maar elke retailer heeft een id waaraan deze dient te worden gelinkt.
Alsook retailer_to_category moet gelinkt worden volgens mij.

Mijn 3 tabellen zien er als volgt uit:

1)retailers
retailer_id

2)retailer_to_category
retailer_id
category_id

3)categories
category_id
name

Aangezien ik enkel 'name' wil selecteren zal ik de category_id moeten linken aan retailer_to_category alsook de retailer_id met retailers om een correcte link te hebben tussen retailer en categorienaam (name)

Met enkel 1 tabel zoals u voorstelt, krijg ik steeds dezelfde categorienaam ongeacht welke retailer ik selecteer.
Gewijzigd op 08/03/2021 10:38:26 door Dorine Boss
 
Adoptive Solution

Adoptive Solution

08/03/2021 11:23:00
Quote Anchor link
Kijk eens of dit werkt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$query
= "SELECT c.category_id, c.name, r.retailer_id, r.name
FROM retailer_to_category rc
INNER JOIN categories c ON rc.category_id = c.category_id
INNER JOIN retailers  r ON rc.retailer_id = r.retailer_id"
;
?>


Wel even controleren of r.name bestaat.
 
Jan R

Jan R

08/03/2021 11:26:20
 
Dorine Boss

Dorine Boss

08/03/2021 11:44:18
Quote Anchor link
Hi,

Jammer, krijg volgende foutmelding
query failed: Unknown column 'r.name' in 'field list'
 
Adoptive Solution

Adoptive Solution

08/03/2021 11:53:28
Quote Anchor link
Ik schreef het er nog bij.

Quote:
Wel even controleren of r.name bestaat.
 
Ozzie PHP

Ozzie PHP

08/03/2021 12:54:26
Quote Anchor link
Plaats name eens tussen backticks:

`name`
 
Ad Fundum

Ad Fundum

08/03/2021 13:13:59
Quote Anchor link
Een goed boek wil ook nog wel eens helpen.. :)
 
Adoptive Solution

Adoptive Solution

08/03/2021 14:56:07
Quote Anchor link
Inderdaad, toch maar eens een boek lezen.

MySQL 5.7 Keywords and Reserved Words

The following list shows the keywords and reserved words in MySQL 5.7, along with changes to individual words from version to version. Reserved keywords are marked with (R).

https://dev.mysql.com/doc/refman/5.7/en/keywords.html#keywords-5-7-detailed-N

MySQL 8.0 Keywords and Reserved Words

The following list shows the keywords and reserved words in MySQL 8.0, along with changes to individual words from version to version.

Reserved keywords are marked with (R).

https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-8-0-detailed-N
 
Ad Fundum

Ad Fundum

08/03/2021 20:02:52
Quote Anchor link
We weten dat `name` een reserverd keyword is.
Dorine schrijft: "Jammer, krijg volgende foutmelding query failed: Unknown column 'r.name' in 'field list'"

Hoe kan dat?
Als Dorine genoeg kennis heeft van MySQL om reserved keywords te escapen met backticks, dan moet het toch ook lukken om haar eigen tabellen te snappen?
 



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.