MySQL SELECT казус

1 отговора 150 прегледа
#1

MySQL SELECT казус

Здравейте,

Имам таблица наречена "model":

+-----------+----------------+
| id | name |
+-----------+----------------+
| 1 | Model 1 |
+-----------+----------------+
| 2 | Model 2 |
+-----------+----------------+

В друга таблица имам две полета наречени "mod1" и "mod2".
Тези две полета съдържат id от таблица модел като е възможно стойностите в девете полета да съвпадат, а може и да са различни.

Какъв трябва да бъде SELECT-а, че да мога да извлека всичко от втората таблица като в полетата mod1 и mod2 да не излизат id-тата от първата таблица, а имената от полето name.

Мерси предварително.

Отговор
в отговор на SA #2

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

Редактирано от salle на

Отговор