|
|
|
| Здравствуйте всем !
Есть две таблицы: допустим
таблица_1 (id, name, time, email) и таблица_2(id, email)
так вот, нужно выбрать все 'email' из таблицы_2 и все (*) записи из таблицы_1, у которых 'email' совпадает с 'email' из таблицы_2... о как...
че та не соображу...
Хотел в два запроса, потом сравнивать, но как то это не правильно,... как потом сравнивать результаты запросов ?
Подскажите как сформировать один запрос ?
Наверно, что-то типа
"SELECT * FROM таблица_2 WHERE EXISTS (SELECT * FROM таблица_1 WHERE таблица_2.email = таблица_1.email)";
|
???
Спасибо ! | |
|
|
|
|
|
|
|
для: mehelson
(30.03.2007 в 08:19)
| | select t1.*, t2.email from table1 t1, table2 t2 where t1.email=t2.email | |
|
|
|
|
|
|
|
для: bronenos
(30.03.2007 в 09:10)
| | Спасибо !
А как к результату обращаться ?
если...
$query = mysql_query("SELECT tbl_1.*, tbl_2.email FROM tbl_1, tbl_2 WHERE tbl_1.email=tbl_2.email");
if(!$query) exit(mysql_error());
|
то...
while($res = mysql_fetch_array($query))
{
echo "<tr><td>".$res['tbl_2.email']."</td>";
echo "<td>".$res['tbl_1.field1']." ".$res['tbl_1.field2']." ".$res['tbl_1.field3']."</td></tr>";
}
|
или как ?
Спасибо! | |
|
|
|
|
|
|
|
для: mehelson
(30.03.2007 в 11:57)
| |
<?
$query = mysql_query("SELECT tbl_1.* FROM tbl_1, tbl_2 WHERE tbl_1.email=tbl_2.email");
if(!$query) exit(mysql_error());
while($res = mysql_fetch_assoc($query))
{
echo "<tr><td>".$res['email']."</td>";
echo "<td>".$res['field1']." ".$res['field2']." ".$res['field3']."</td></tr>";
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.03.2007 в 12:00)
| | Спасибо !
но это если email совпали... а если нет...
а мне надо из tbl_2 все записи выбрать, независимо от совпадений...
ну и + к этому записи из tbl_1 если email совпали... | |
|
|
|
|
|
|
|
для: mehelson
(30.03.2007 в 12:08)
| | Если из tbl_2 нужно выбрать всё, этот запрос не годится - нужно будет применять внешнее соединение и псевдонимы столбцов:
SELECT
tbl_2.email AS t2_email,
tbl_1.email AS t1_email,
tbl_2.fld1 AS t2_fld1,
tbl_1.fld1 AS t1_fld1,
FROM tbl_2 LEFT JOIN tbl_1 on tbl_2.email = tbl_1.email
|
Обращаться к столбцам нужно будет по псевдонимам. | |
|
|
|
|
|
|
|
для: Trianon
(30.03.2007 в 12:18)
| | Спасибо большое!
Наконец-то разобрался с объединением.
Прекрасно работает запрос-
"SЕLЕСТ * FRОМ tbl_1 RIGHТ JОIN tbl_2 ОN tbl_2.еmаil=tbl_1.еmаil";
|
т.е. выбираем все записи из tbl_1, соответствующие условию и все записи из tbl_2, включая те, которым не нашлось соответствий в tbl_1...
Спасибо! | |
|
|
|