Риточка
23.05.2013 - 12:09
У меня есть две таблицы tb1 b tb2. В каждой из них есть колонка id_user. Покажите как должен выглядеть запрос, чтобы вытащить из обеих таблиц, где id_user=43. Спасибо. Надеюсь на чью=нибудь помощь.
select * from tb1, tb2 where tb1.id_user=td2.id_user and tb1.id_user=43
killer8080
23.05.2013 - 12:22
SELECT *
FROM `tb1`
LEFT JOIN `tb2` USING (`id_user`)
WHERE `tb1`.`id_user` = 43
Риточка
23.05.2013 - 12:31
Спасибо. Оба выше приведенных запроса выводят строки только из одной таблицы, причем почему-то задвоенные. Может я необходимые условия неверно написала? Если в каждой таблице по одной строчке, где id_user=43? то нужно,чтобы строки из обеих таблиц вывелись не в одну строчку, а в две: одна из первой таблицы, а другая-из второй
Игорь_Vasinsky
23.05.2013 - 12:45
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
(SELECT * FROM tb1 WHERE tb1.id_user=43) UNION (SELECT * FROM tb2 WHERE tb2.id_user=43)
,имена столбцов должны быть приведены к одинковым
xlebosol
23.05.2013 - 13:42
SELECT `tab1`.*, `tab2`.*
FROM tb1 as tab1
INNER JOIN tb2 as tab2
ON (`tab1`.id_user=`tab2`.id_user)
WHERE `tab1`.id_user=43
Риточка
23.05.2013 - 20:14
Ничего не получается. Ну помогите же мне разобраться, а то я расплачусь.
<?
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
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'];
Риточка
23.05.2013 - 20:44
Цитата (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
23.05.2013 - 20:48
Вы хотите получить значения из двух таблиц одним запросом, но при этом вывести их так будто они получены двумя разными запросами?
$firstResult = $secondResult = array();
while($row = mysql_fetch_array ($res))
{
$firstResult[] = $row['marka1'];
$secondResult[] = $row['marka2'];
}
echo implode(' ', $firstResult).' <br/> '.implode(' ', $secondResult);
Игорь_Vasinsky
23.05.2013 - 20:53
почитайте про 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
Риточка
23.05.2013 - 21:09
6Mercedes Mercedes Mercedes Mercedes Mercedes Mercedes
Gazel Volvo Gazel Volvo Gazel Volvo
еще хуже получилось. Смысл в том, что строк, где id_user=43, в первой таблице-2, во второй 3. т.е. всего должно быть 5 строк и 5слов. А в том что вы предлагаете, почему-то выпадает 6 строк и 12!!! слов.
Никто не знает как это сделать?
Риточка
23.05.2013 - 21:10
Цитата (Игорь_Vasinsky @ 23.05.2013 - 20:53) |
почитайте про JOIN LEFT JOIN RIGHT JOIN INNER JOIN а плакаться на неумение любой может |
почитала уже...не могу разобраться. а ты вот если не знаешь как это сделать, то можно и не умничать)
DarkLynx
23.05.2013 - 21:12
Приведите дамп таблиц.. (по 43 пользователю) Мне кажется вы что то путаете..
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.