[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос к БД
minok94
Здравствуйте, форумчане.

Например, строение таблиц такое:
db_cpu:  name  | db_motherboard:  name        |    db_socket:   socket (AM3, 775, 1156...)
socket socket
money money

Как связать таблицы db_cpu,db_motherboard,db_socket так чтобы запрос шел только к db_socket, а выбирались данные из двух других таблиц.

P.s. В таблице db_socket будут содержаться названия сокетов для cpu (AM2, AM3, 775, 1155, 1156, 1366 ...).





Спустя 4 минуты, 11 секунд (9.04.2011 - 15:33) neadekvat написал(а):
Условие непонятно. Если вы не укажите, что выборку нужно делать из двух таблиц, то это само по себе не произойдет. Поэтому надо четко понимать, по каким полям будут связываться таблицы.

Спустя 2 минуты, 17 секунд (9.04.2011 - 15:36) minok94 написал(а):
Связь будет по полю socket, т. е. если нам нужны комплектующие ПК на платформе AMD с сокетом AM3, то в результате выводится должны только совместимые комплектующие.

Спустя 5 минут, 15 секунд (9.04.2011 - 15:41) neadekvat написал(а):
Что-то типа того
SELECT t1.*, t2.*, t3.*
FROM `db_socket` t1
LEFT JOIN db_motherboard t2 USING(`socket`)
LEFT JOIN db_cpu t3 USING(`socket`)
WHERE t1.socket = 775

Правда, у вас поля повторяются - конфликт, по сути. Так что придется назначать свои имена через алиасы:
SELECT t2.name as mother_name...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.