Zzepish
19.01.2013 - 23:03
Пишу админку.
есть таблица users_channels: channel_id|starter|destination_user.
starter и destination_user: id юзера начавшего, и адресата соответственно.
есть таблица users : id|nick.
Так вот- как мне в один запрос соединить, чтоб я мог выбрать ники и стартера, и адресата?
$channel['starter_nick'].' '.$channel['destination_user_nick']
Игорь_Vasinsky
19.01.2013 - 23:17
почитайте про JOIN - поможет сделать запрос в 2 и более таблицы
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Zzepish
19.01.2013 - 23:39
Игорь_Vasinsky
не вариант.
Игорь_Vasinsky
19.01.2013 - 23:48
да ну))
users_channels: channel_id|starter|destination_user
users : id|nick
попробуй
SELECT * FROM `users_channels` `uc` RIGTH JOIN `users` `u` ON `uc`.`starter` = `u`.`id` AND `us`.`destination_user` = `u`.`id`
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
20.01.2013 - 00:01
не не - этот запрос кривой. сек. поколдую
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Zzepish
20.01.2013 - 00:11
Игорь_Vasinsky
Да уже не надо (но если напишешь- буду благодарен и намотаю на ус)
Игорь_Vasinsky
20.01.2013 - 00:15
SELECT u . * , uc . *
FROM `users_channels` `uc`
LEFT JOIN `users` `u` ON `uc`.`starter` = `u`.`id`
OR `uc`.`destination_user` = `u`.`id`
Вернул
id nick channel_id starter destination_user
1 user1 1 1 2
2 user2 1 1 2
3 user3 2 3 4
4 user4 2 3 4
5 user5 3 5 6
6 user6 3 5 6
7 user7 4 7 8
8 user8 4 7 8
9 user9 5 9 10
10 user10 5 9 10
как видно - получено всё что нужно, тока из-за того что в беседе 2 человека - то и по channel_id - по 2 строки
таблица каналов
channel_id starter destination_user
1 1 2
2 3 4
3 5 6
4 7 8
5 9 10
таблица юзеров
id nick
1 user1
2 user2
3 user3
4 user4
5 user5
6 user6
7 user7
8 user8
9 user9
10 user10
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
20.01.2013 - 00:16
т.е. при while - можно лекго собрать нужный ассоциативный массив
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Zzepish
20.01.2013 - 01:00
Игорь_Vasinsky
ПОнимаешь в чем беда- у меня выдает поля с NULL (хотя их вообще не должно там быть)
Игорь_Vasinsky
20.01.2013 - 01:02
дай дамп обоих таблиц
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Zzepish
20.01.2013 - 01:16
Игорь_Vasinsky
20.01.2013 - 01:27
а users?
и почему у тя в таблице chat 1 строка в которой `to` - пусто?
уточни условие для этих таблиц
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
20.01.2013 - 01:35
SELECT *
FROM `user_channels` `uc`
LEFT JOIN `chat` `c` ON `uc`.`channel_id` = `c`.`channel`
WHERE `c`.`channel` IS NOT NULL
channel_id starter destination_user id sender_id who to date channel text
2 5 1 40 1 Zzepish 2013-01-18 16:07:40 2 ggdggfgddf
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Zzepish
20.01.2013 - 01:36
Игорь_Vasinsky
to я вообще удалю! она не нужна
Игорь_Vasinsky
20.01.2013 - 01:38
вообще не понятно в chat есть sender_id и who
и почёму получатель to у тя пуст?
что то мне структура не больно нравиться.
почему myisam, а не innodb ?
там есть foregain key - можно завязать channel_id и channel
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.