[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод строк из таблицы с помощью объединения join
Страницы: 1, 2, 3, 4
Риточка
У меня есть две таблицы tb1 b tb2. В каждой из них есть колонка id_user. Покажите как должен выглядеть запрос, чтобы вытащить из обеих таблиц, где id_user=43. Спасибо. Надеюсь на чью=нибудь помощь.
kaww
select * from tb1, tb2 where tb1.id_user=td2.id_user and tb1.id_user=43
killer8080
SELECT * 
FROM `tb1`
LEFT JOIN `tb2` USING (`id_user`)
WHERE `tb1`.`id_user` = 43
Риточка
Спасибо. Оба выше приведенных запроса выводят строки только из одной таблицы, причем почему-то задвоенные. Может я необходимые условия неверно написала? Если в каждой таблице по одной строчке, где id_user=43? то нужно,чтобы строки из обеих таблиц вывелись не в одну строчку, а в две: одна из первой таблицы, а другая-из второй
Игорь_Vasinsky
select * from tb1, tb2 where tb1.id_user=43 OR tb2.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
kaww
(SELECT * FROM tb1 WHERE tb1.id_user=43) UNION (SELECT * FROM tb2 WHERE tb2.id_user=43)

,имена столбцов должны быть приведены к одинковым
xlebosol
SELECT `tab1`.*, `tab2`.*
FROM tb1 as tab1
INNER JOIN tb2 as tab2
ON (`tab1`.id_user=`tab2`.id_user)
WHERE `tab1`.id_user=43
Риточка
Ничего не получается. Ну помогите же мне разобраться, а то я расплачусь.
<?
include ("../bd.php");
$result = ("SELECT marka FROM tb1 WHERE id_user = 43 ORDER BY datetime DESC");
$res = mysql_query($result);
$num=mysql_num_rows($res);
echo $num;
while($row = mysql_fetch_array ($res))
{
$marka=mysql_real_escape_string($row['marka']);
echo $marka;
}
$result = ("SELECT marka FROM tb2 WHERE id_user = 43 ORDER BY datetime DESC");
$res = mysql_query($result);
$num=mysql_num_rows($res);
echo $num;
while($row = mysql_fetch_array ($res))
{
$marka=mysql_real_escape_string($row['marka']);
echo $marka;
}
?>
Данный скрипт выводит 2GazelVolvo3MercedesMercedesMerc edes Как их соединить, чтобы выводилось 5 GazeMercedeslVolvoMercedesMercedes(сортировка по дате добавления)
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

в

while($row = mysql_fetch_array ($res))
echo $row['marka1'].' '.$row['marka2'];
Риточка
Цитата (DarkLynx @ 23.05.2013 - 20:24)
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

в

while($row = mysql_fetch_array ($res))
echo $row['marka1'].' '.$row['marka2'];

Вообще непонятно что получается
6Mercedes GazelMercedes VolvoMercedes GazelMercedes VolvoMercedes GazelMercedes Volvo
Во первых должно быть 5 строк, а во вторых че они попарно как-то вылезли?
DarkLynx
Вы хотите получить значения из двух таблиц одним запросом, но при этом вывести их так будто они получены двумя разными запросами?

$firstResult = $secondResult = array();
while($row = mysql_fetch_array ($res))
{
$firstResult[] = $row['marka1'];
$secondResult[] = $row['marka2'];
}
echo implode(' ', $firstResult).' <br/> '.implode(' ', $secondResult);
Игорь_Vasinsky
почитайте про JOIN LEFT JOIN RIGHT JOIN INNER 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
Риточка
6Mercedes Mercedes Mercedes Mercedes Mercedes Mercedes
Gazel Volvo Gazel Volvo Gazel Volvo
еще хуже получилось. Смысл в том, что строк, где id_user=43, в первой таблице-2, во второй 3. т.е. всего должно быть 5 строк и 5слов. А в том что вы предлагаете, почему-то выпадает 6 строк и 12!!! слов.
Никто не знает как это сделать?
Риточка
Цитата (Игорь_Vasinsky @ 23.05.2013 - 20:53)
почитайте про JOIN LEFT JOIN RIGHT JOIN INNER JOIN
а плакаться на неумение любой может

почитала уже...не могу разобраться. а ты вот если не знаешь как это сделать, то можно и не умничать)
DarkLynx
Приведите дамп таблиц.. (по 43 пользователю) Мне кажется вы что то путаете..
Быстрый ответ:

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