Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Выборка из 3х и более таблиц, чёт не прёт меня сложные запросы мастерить
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




Вообщем есть 3 таблицы с данными - у каждой есть столбец `prid` - по нему соб-но и выборка.

Главная `product` - из остальных 2х нужно всё запихать по `prid`

(SELECT * FROM `product` LEFT JOIN `product_namefeat_value` USING(prid)) 
UNION
(SELECT * FROM `product` LEFT JOIN `images` USING(prid))


с ON `product`.`prid` = `...`.`prid` - тоже не проканывает.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2479
Пользователь №: 28490
На форуме: 6 лет, 28 дней
Карма: -19

Трезвый :
22 года, 6 месяцев, 5 дней


хз мож так попробуй
SELECT p.*,t2.*,t3.* FROM product AS p,t2,t3
LEFT JOIN t2 ON t2.prid = p.prid
LEFT JOIN t3 ON t3.prid = p.prid


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




а разница? что с альясами, что без них, толи во втором JOIN WHERE юзать...


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2479
Пользователь №: 28490
На форуме: 6 лет, 28 дней
Карма: -19

Трезвый :
22 года, 6 месяцев, 5 дней


Игорь_Vasinsky
опиши подробно, напишу запрос, я наверно не понял чуток


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




смотри

есть 3 таблицы - в каждой есть столбец `prid`

t1 - из этой таблицы берутся данные и дополняются из таблиц t2 и t3 - связь - столбец `prid`

специально prid делал везде, думал чтоб обойтись без ON - чисто с USING


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Placido  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Наблюдаю
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1244
Пользователь №: 29445
На форуме: 5 лет, 10 месяцев, 18 дней
Карма: 144




Не понял, а чем обычный JOIN не подходит?
SELECT `p`.*, `pn`.*, `i`.* FROM `product` `p` 
LEFT JOIN `product_namefeat_value` `pn` ON `p`.`prid` = `pn`.`prid`
LEFT JOIN `images` `i` ON `p`.`prid` = `i`.`prid`;
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




Я не видел раньше такого синтаксиса
Цитата
`product_namefeat_value` `pn`

2 таблицы подряд без всяких операторов. таблицы-алияс

щас проверю.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




выборки нет из 3й таблицы.
гоню. это я криворукий. спс.+


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




Обнаружил баг

если какая нить таблица не содержит значений в поле `prid` - пре выборке `prid` == null

в моём случае именно таблица `images` - не содержит вообще записей

в итоге

Array
(
[prid] =>
[name] => Купон на билет
[namefeat] => Номер
[feat] => number
[featval] => eb80753e24ff80e69928
[image] =>
)


из за чего так?


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22932
Пользователь №: 20039
На форуме: 7 лет, 7 месяцев, 14 дней
Карма: 608




если я правильно понял, ты не выбирай через * всё, не делай * ко всем таблицам. Можешь так сделать:
main.*, second.`image`,third.`feat` , в таком роде.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




мне нужны все столбцы во всех таблицах попробывал явно указать имента столбцов - без результата


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11965
Пользователь №: 23195
На форуме: 6 лет, 11 месяцев, 27 дней
Карма: 435

Трезвый :
7 лет, 10 месяцев, 27 дней


выложи тестовый дамп и еще раз сформулируй задачу, потому что я например так и не понял толком, что ты хочешь сделать


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




есть 3 таблицы

`product`
`product_namefeat_value`
`images`

cвязь у этих таблиц по столбцу `prid` (product id)

мне нужно сделать выборку по `prid`



CREATE TABLE IF NOT EXISTS `images` (
`prid` int(11) DEFAULT NULL,
`image` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE IF NOT EXISTS `product` (
`prid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(80) NOT NULL,
PRIMARY KEY (`prid`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=142 ;

INSERT INTO `product` (`prid`, `name`) VALUES
(141, 'Товар');


CREATE TABLE IF NOT EXISTS `product_namefeat_value` (
`prid` int(11) DEFAULT NULL,
`namefeat` varchar(300) DEFAULT NULL,
`feat` varchar(300) DEFAULT NULL,
`featval` varchar(300) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



INSERT INTO `product_namefeat_value` (`prid`, `namefeat`, `feat`, `featval`) VALUES
(141, 'Номер', 'number', 'eb80753e24ff80e69928'),
(
141, 'Наименование', 'name', 'Купон на билет'),
(
141, 'Псевдоним', 'pseudonim', 'kupon_na_bilet'),
(
141, 'Количество', 'count', '1'),
(
141, 'Категория', 'catid', '21'),
(
141, 'Описание', 'description', 'фыв');


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11965
Пользователь №: 23195
На форуме: 6 лет, 11 месяцев, 27 дней
Карма: 435

Трезвый :
7 лет, 10 месяцев, 27 дней


select p.*, i.image, pnv.namefeat, pnv.feat, pnv.featval
from product p
left join images i on i.prid = p.prid
left join product_namefeat_value pnv on pnv.prid = p.prid

если одна из таблиц пуста - конечно ты получишь null в качестве значений соответствующих полей


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 739




гениально.
просто не указывать в SELECT ту ячеку, которая может оказаться null - правильно понял?


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса