[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод строк из таблицы с помощью объединения join
Страницы: 1, 2, 3, 4
DarkLynx
блин.. Я описался в запросе... Неужели вы этого не заметили?

SELECT tb1.marka AS marka1, tb2.marka AS marka2
FROM tb1, tb2 WHERE tb1.id_user = 43 AND tb2.id_user = 42
ORDER BY tb1.datetime, tb2.datetime DESC

Поменяйте 42 на 43
Риточка
Да я сразу это заметила. И ничего я не перепутала. Ты посмотри я там писала, что когда делаю по запросу к каждой таблице, выпадает:
2GazelVolvo3MercedesMercedesMercedes
т.е. 2 строки из первой таблицы - газель и вольво и 3 строки из второй- мерседес, мерседес и мерседес.
Да и не могу я сюда базу выложить
Игорь_Vasinsky
умничать я буду столько сколько захочу.

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

халявшица)))

_____________
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
Риточка
ну ладно, поумничай...еще б че хорошее умничал!)) А если честно, я так, как ты говоришь, и делала. Только по-моему тут вообще join не подходит. по крайней мере, у меня не получается уже 3 дня....поэтому за помощью я и обратилась. Ведь это простой пример для мастера, а я на нем и научусь) по крайней мере, я так думала. ты ж не думаешь, что у меня таблицы так в базе называются? мне нужно это как пример. А все, что мне предлагают, даже не напоминает то, что мне нужно
Игорь_Vasinsky
запросы в 2 и более таблиц делаются через WHERE с перечисление таблиц или JOIN (его вариациях)

я таблиц твоих не вижу

_____________
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
Риточка
Да че их видеть-то? tb1(колонки id_user, marka и еще 3 колонки), tb2(колонки id_user, marka и еще5 колонок). В первой таблице строк с id_user-3, во второй-2. Как сделать, чтобы вывелись 5 строк(то есть 3+2)?
DarkLynx
mysql> CREATE TABLE test (text VARCHAR(255), user INT(11));
Query OK, 0 rows affected (0.09 sec)

mysql> CREATE TABLE test2 (text VARCHAR(255), user INT(11));
Query OK, 0 rows affected (0.07 sec)

mysql> INSERT INTO test VALUES ('text1', 43), ('text2', 43);
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> INSERT INTO test2 VALUES ('text3', 43), ('text4', 43), ('text5', 43);
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> SELECT test.text AS t1, test2.text AS t2 FROM test, test2 WHERE test.user = 43 AND test2.user = 43;
+-------+-------+
| t1 | t2 |
+-------+-------+
| text1 | text3 |
| text2 | text3 |
| text1 | text4 |
| text2 | text4 |
| text1 | text5 |
| text2 | text5 |
+-------+-------+
6 rows in set (0.00 sec)

mysql> SELECT test.text AS t1, test2.text AS t2 FROM test JOIN test2 ON test2.user = test.user WHERE test.user = 43;
+-------+-------+
| t1 | t2 |
+-------+-------+
| text1 | text3 |
| text2 | text3 |
| text1 | text4 |
| text2 | text4 |
| text1 | text5 |
| text2 | text5 |
+-------+-------+
6 rows in set (0.00 sec)

mysql> SELECT test.text AS t1, test2.text AS t2 FROM test LEFT JOIN test2 ON test2.user = test.user WHERE test.user = 43;
+-------+-------+
| t1 | t2 |
+-------+-------+
| text1 | text3 |
| text1 | text4 |
| text1 | text5 |
| text2 | text3 |
| text2 | text4 |
| text2 | text5 |
+-------+-------+
6 rows in set (0.00 sec)

mysql> SELECT test.text AS t1, test2.text AS t2 FROM test RIGHT JOIN test2 ON test2.user = test.user WHERE test.user = 43;
+-------+-------+
| t1 | t2 |
+-------+-------+
| text1 | text3 |
| text2 | text3 |
| text1 | text4 |
| text2 | text4 |
| text1 | text5 |
| text2 | text5 |
+-------+-------+
6 rows in set (0.00 sec)

mysql> SELECT test.text AS t1, test2.text AS t2 FROM test INNER JOIN test2 ON test2.user = test.user WHERE test.user = 43;
+-------+-------+
| t1 | t2 |
+-------+-------+
| text1 | text3 |
| text2 | text3 |
| text1 | text4 |
| text2 | text4 |
| text1 | text5 |
| text2 | text5 |
+-------+-------+
6 rows in set (0.00 sec)


Попробовал все 4 варианта, лично у меня что то не получилось то что хочет автор.
Риточка
Спасибо за помощь, DarkLynx. Так может, то, что я хочу-нереально и надо другой выход придумать?
Игорь_Vasinsky
Цитата
У меня есть две таблицы tb1 b tb2. В каждой из них есть колонка id_user. Покажите как должен выглядеть запрос, чтобы вытащить из обеих таблиц, где id_user=43.


запрос должен вернуть данные из обоих таблиц?
запрос должен дополнить данные одной таблицы - данными другой?

_____________
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 @ 23.05.2013 - 21:52)
Цитата
У меня есть две таблицы tb1 b tb2. В каждой из них есть колонка id_user. Покажите как должен выглядеть запрос, чтобы вытащить из обеих таблиц, где id_user=43.


запрос должен вернуть данные из обоих таблиц?
запрос должен дополнить данные одной таблицы - данными другой?

Ты надо мной издеваешься, да? Я ж пишу :
"Как сделать, чтобы вывелись 5 строк(то есть 3 из первой таблицы+2 из второй таблицы)?"
Ну ты понял что мне надо или еще раз повторить?))
Игорь_Vasinsky
ещё раз повтори
теперь мне стало вообще фиалетого до твоих проблем biggrin.gif

_____________
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 @ 23.05.2013 - 22:02)
ещё раз повтори
теперь мне стало вообще фиалетого до твоих проблем biggrin.gif

да-да. Лучше б правду сказал, что не знаешь как это сделать. А то типа обиделся!! Знаю, но теперь не скажу)) кто тут девочка...я или ты?
Риточка
Мне хоть кто-то может четко сказать, что так, как я хочу, не получится. Или получится....и как?) Или на этом сайте только горе-программисты? Ну тогда хоть подскажите где спросить
killer8080
Цитата (Риточка @ 23.05.2013 - 21:00)
"Как сделать, чтобы вывелись 5 строк(то есть 3 из первой таблицы+2 из второй таблицы)?"

ну так причем здесь join? Тут union нужен, об этом тебе еще в самом начале говорили.
Быстрый ответ:

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