MySQL SELECT казус
1 отговора
150 прегледа
MySQL SELECT казус
Здравейте,
Имам таблица наречена "model":
+-----------+----------------+
| id | name |
+-----------+----------------+
| 1 | Model 1 |
+-----------+----------------+
| 2 | Model 2 |
+-----------+----------------+
В друга таблица имам две полета наречени "mod1" и "mod2".
Тези две полета съдържат id от таблица модел като е възможно стойностите в девете полета да съвпадат, а може и да са различни.
Какъв трябва да бъде SELECT-а, че да мога да извлека всичко от втората таблица като в полетата mod1 и mod2 да не излизат id-тата от първата таблица, а имената от полето name.
Мерси предварително.
Имам таблица наречена "model":
+-----------+----------------+
| id | name |
+-----------+----------------+
| 1 | Model 1 |
+-----------+----------------+
| 2 | Model 2 |
+-----------+----------------+
В друга таблица имам две полета наречени "mod1" и "mod2".
Тези две полета съдържат id от таблица модел като е възможно стойностите в девете полета да съвпадат, а може и да са различни.
Какъв трябва да бъде SELECT-а, че да мога да извлека всичко от втората таблица като в полетата mod1 и mod2 да не излизат id-тата от първата таблица, а имената от полето name.
Мерси предварително.
Re: MySQL SELECT казус
Явно те си губят основни понятия от релационните бази данни. Препоръчвам ти да прочетеш за обединяването на таблици (JOIN)
Ето ти една зявка която прави приблизително това което описваш, но може иб не съвсем това което искаш :) Може например LEFT JOIN да ти върши по-добра работа, но от описанието ти не е напълон ясно какво точно трябва да получиш. Най-добре е да даваш конкретен пример когато питаш.
SELECT m1.name, m2.name, tbl2.c1, tbl2.c2 ..., tbl2.cN
FROM tbl2, model AS m1, model AS m2
WHERE
tbl2.mod1 = m1.id OR
tbl2.mod2 = m2.id;
Където tbl2.c1 ... cN са останалите колонки от втората таблица
salle.online.bg/sig
Ето ти една зявка която прави приблизително това което описваш, но може иб не съвсем това което искаш :) Може например LEFT JOIN да ти върши по-добра работа, но от описанието ти не е напълон ясно какво точно трябва да получиш. Най-добре е да даваш конкретен пример когато питаш.
SELECT m1.name, m2.name, tbl2.c1, tbl2.c2 ..., tbl2.cN
FROM tbl2, model AS m1, model AS m2
WHERE
tbl2.mod1 = m1.id OR
tbl2.mod2 = m2.id;
Където tbl2.c1 ... cN са останалите колонки от втората таблица
salle.online.bg/sig
Редактирано от salle на