powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка данных из 3 таблиц
5 сообщений из 5, страница 1 из 1
Выборка данных из 3 таблиц
    #38967206
Batyabest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть 3 таблицы в БД.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
TOF_MODELS
DROP TABLE IF EXISTS `TOF_MODELS`;
CREATE TABLE IF NOT EXISTS `TOF_MODELS` (`MOD_ID` int(11) NOT NULL,`MOD_MFA_ID` smallint(6) ,`MOD_CDS_ID` int(11) ,`MOD_PCON_START` int(11) ,`MOD_PCON_END` int(11) ,`MOD_PC` smallint(6) ,`MOD_CV` smallint(6) ,`MOD_AXL` smallint(6) ,`MOD_PC_CTM` varchar(258) ,`MOD_CV_CTM` varchar(258) ) ENGINE=InnoDB ROW_FORMAT = DYNAMIC DEFAULT CHARSET=utf8;

TOF_COUNTRY_DESIGNATIONS
DROP TABLE IF EXISTS `TOF_COUNTRY_DESIGNATIONS`;
CREATE TABLE IF NOT EXISTS `TOF_COUNTRY_DESIGNATIONS` (`CDS_ID` int(11) NOT NULL,`CDS_CTM` varchar(258) NOT NULL,`CDS_LNG_ID` smallint(6) NOT NULL,`CDS_TEX_ID` int(11) NOT NULL) ENGINE=InnoDB ROW_FORMAT = DYNAMIC DEFAULT CHARSET=utf8;

TOF_DES_TEXTS
DROP TABLE IF EXISTS `TOF_DES_TEXTS`;
CREATE TABLE IF NOT EXISTS `TOF_DES_TEXTS` (`TEX_ID` int(11) NOT NULL,`TEX_TEXT` varchar(1200) ) ENGINE=InnoDB ROW_FORMAT = DYNAMIC DEFAULT CHARSET=utf8;



Как мне получить данные параметр TEX_TEXT из третьей таблицы (TEXTS), если взаимосвязь такая: Из таблицы MODELS параметр MOD_CDS_ID => параметр из таблицы DESIG CDS_ID А параметр из таблицы DESIG CDS_TEX_ID = параметру из третьей таблицы TEXTS TEX_ID

То есть получить нужно такие данные:
Из таблицы TOF_MODELS => MOD_CDS_ID
Из таблицы TOF_COUNTRY_DESIGNATIONS => CDS_ID = MOD_CDS_ID, CDS_TEX_ID
Из таблицы TOF_DES_TEXTS => TEX_ID = CDS_TEX_ID, TEX_TEXT
...
Рейтинг: 0 / 0
Выборка данных из 3 таблиц
    #38967213
Batyabest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь сделать так:

select * from TOF_MODELS INNER JOIN TOF_COUNTRY_DESIGNATIONS ON TOF_MODELS.MOD_CDS_ID = TOF_COUNTRY_DESIGNATIONS.CDS_ID INNER JOIN TOF_DES_TEXTS ON TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID = TOF_DES_TEXTS.TEX_ID WHERE TOF_MODELS.MOD_MFA_ID = 647

Выводит ноль строк.
...
Рейтинг: 0 / 0
Выборка данных из 3 таблиц
    #38967470
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BatyabestВыводит ноль строк.Значит, совпадений нет. Сам запрос синтаксически вроде бы верен.
...
Рейтинг: 0 / 0
Выборка данных из 3 таблиц
    #38967553
Batyabest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, в том-то и дело, что в базе должны быть такие строки. Ума не приложу, почему ноль выводит.
...
Рейтинг: 0 / 0
Выборка данных из 3 таблиц
    #38967569
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Batyabestв базе должны быть такие строкиДолжны быть - не значит на самом деле имеются.

Запрос
Код: sql
1.
2.
3.
4.
5.
SELECT * 
FROM TOF_MODELS 
INNER JOIN TOF_COUNTRY_DESIGNATIONS ON TOF_MODELS.MOD_CDS_ID = TOF_COUNTRY_DESIGNATIONS.CDS_ID 
INNER JOIN TOF_DES_TEXTS ON TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID = TOF_DES_TEXTS.TEX_ID 
WHERE TOF_MODELS.MOD_MFA_ID = 647


является полным синонимом запроса
Код: sql
1.
2.
3.
4.
5.
SELECT * 
FROM TOF_MODELS, TOF_COUNTRY_DESIGNATIONS, TOF_DES_TEXTS
WHERE TOF_MODELS.MOD_MFA_ID = 647
  AND TOF_MODELS.MOD_CDS_ID = TOF_COUNTRY_DESIGNATIONS.CDS_ID 
  AND TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID = TOF_DES_TEXTS.TEX_ID 


Но этот вариант нагляднее.
Пользуясь им, внесите в таблицы отфонарные записи (по одной в таблицу), которые соответствуют условиям отбора и обязаны вывестись, и проверьте, выводятся ли они. Если да - грош цена Вашему "должны быть"...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка данных из 3 таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]