Inner join of iets anders??
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?
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.
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:
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
Code (php)
1
2
3
4
5
6
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";
?>
$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.
Jammer, krijg volgende foutmelding
query failed: Unknown column 'r.name' in 'field list'
Quote:
Wel even controleren of r.name bestaat.
`name`
Een goed boek wil ook nog wel eens helpen.. :)
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
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?