powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT из трёх зависимых таблиц
10 сообщений из 10, страница 1 из 1
SELECT из трёх зависимых таблиц
    #38377216
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, возникла проблема при составлении запроса, простенькие запросы писать умею, а тут что-то даже представить не могу как это реализовать.
Итак, есть 3 таблица (их дамп):

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE IF NOT EXISTS `keywords` (
  `id` int(9) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;


CREATE TABLE IF NOT EXISTS `post-keywords` (
  `id` int(9) NOT NULL AUTO_INCREMENT,
  `id_keyword` int(9) NOT NULL,
  `id_post` int(9) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;


CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `text` text NOT NULL,
  `date` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;



Таблица keywords - она содержит в себе название тегов
Таблица post-keywords - содержит id тега в таблице keywords, а также id записи таблицы posts
Таблица posts - в ней содержится информация о посте

И вот вопрос, как вытащить допустим 10 статей, и все теги, из таблицы post-keywords где id_post = posts.id, если есть такая запись то нужно вытянуть keyword.name зная post-keywords.id_keyword
Надеюсь вы меня поняли, просто целый день сижу думаю, гугл не помог
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38377267
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
select * from
(select * from posts limit 10) subq, post-keywords, keywords
where post-keywords.id_keyword=keywords.id and post-keywords.id_post=subq.id
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38377286
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gtkuler,

Вот что я написал сам,
SELECT p.*,k.name FROM posts AS p
LEFT JOIN `post-keywords` AS pk ON p.id = pk.id_post
LEFT JOIN keywords AS k ON pk.id_keyword = p.id
ORDER BY p.id DESC LIMIT :num,:count
вроде работает, но не так как надо)
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38377288
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

вот что мне вернул сервер:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
array(4) {
  [0]=>
  array(7) {
    ["id"]=>
    string(1) "1"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["id_keyword"]=>
    string(1) "1"
    ["id_post"]=>
    string(1) "1"
    ["name"]=>
    string(7) "тег1"
  }
  [1]=>
  array(7) {
    ["id"]=>
    string(1) "2"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["id_keyword"]=>
    string(1) "2"
    ["id_post"]=>
    string(1) "1"
    ["name"]=>
    string(7) "тег2"
  }
  [2]=>
  array(7) {
    ["id"]=>
    string(1) "3"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["id_keyword"]=>
    string(1) "3"
    ["id_post"]=>
    string(1) "1"
    ["name"]=>
    string(7) "тег3"
  }
  [3]=>
  array(7) {
    ["id"]=>
    string(1) "4"
    ["title"]=>
    string(28) "Всё о интернете"
    ["text"]=>
    string(41) "Тут просто сама статья"
    ["date"]=>
    string(1) "0"
    ["id_keyword"]=>
    string(1) "4"
    ["id_post"]=>
    string(1) "2"
    ["name"]=>
    string(7) "тег4"
  }
}


Никак нельзя сделать чтобы сервер возращал массив чисто с тегами или как0то так
НУ а по поводу этого, теперь просто перебрать этот массив?
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38377293
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

вот что мне вернул сервер:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
array(4) {
  [0]=>
  array(7) {
    ["id"]=>
    string(1) "1"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["id_keyword"]=>
    string(1) "1"
    ["id_post"]=>
    string(1) "1"
    ["name"]=>
    string(7) "тег1"
  }
  [1]=>
  array(7) {
    ["id"]=>
    string(1) "2"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["id_keyword"]=>
    string(1) "2"
    ["id_post"]=>
    string(1) "1"
    ["name"]=>
    string(7) "тег2"
  }
  [2]=>
  array(7) {
    ["id"]=>
    string(1) "3"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["id_keyword"]=>
    string(1) "3"
    ["id_post"]=>
    string(1) "1"
    ["name"]=>
    string(7) "тег3"
  }
  [3]=>
  array(7) {
    ["id"]=>
    string(1) "4"
    ["title"]=>
    string(28) "Всё о интернете"
    ["text"]=>
    string(41) "Тут просто сама статья"
    ["date"]=>
    string(1) "0"
    ["id_keyword"]=>
    string(1) "4"
    ["id_post"]=>
    string(1) "2"
    ["name"]=>
    string(7) "тег4"
  }
}


Никак нельзя сделать чтобы сервер возращал массив чисто с тегами или как0то так
НУ а по поводу этого, теперь просто перебрать этот массив?
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38377303
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gtkulerвот что мне вернул сервер:
Ты данные получил? получил. Если не умеешь их обработать - нафига спрашивал?

В любом случае - зона ответственности кончилась, в форуме по MySQL с проблемами в PHP-программе никто тебе "помогать" не обязан.
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38377335
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, что за негатив? я говорил что мне кто-то что-то обязан? просто хотел спросить так должно возвращать или нет? я join`ыми до этого не работал
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38377391
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gtkulerпросто хотел спросить так должно возвращать или нет? я join`ыми до этого не работалНу так спрашивай там, где НАДО это спрашивать. Вот тут .
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38379966
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

есть небольшой проблема, если keywords.name нет в бд, то он вообще не вытаскивается
...
Рейтинг: 0 / 0
SELECT из трёх зависимых таблиц
    #38380102
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда замените декарт на левое связывание к подзапросу.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT из трёх зависимых таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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