Запрос в Mysql

  • Автор темы Alexygen
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alexygen

Подскажите, как создать запрос одновременно к двум таблицам с одноименными ячейками?

Например: mysql_query("select email from emails and emails_send where email='$sch'")
 
B

BobiKK

SELECT a.email, b.email FROM table1 a, table2 b WHERE a.emails='$sch'
 
X

xopap

SELECT a.email, b.email FROM table1 a, table2 b WHERE a.emails='$sch'
что такое "a" и "b"?
Давайте я попробую ответить.
Про a и b - ... FROM table1 a, table2 b ...
Это означает что ты даешь этим таблицам псевдоним и используешь в запросе. Например вместо
table1.email пишешь a.email.
С другой стороны родился вопрос: какие именно данные ты хочешь получить из этих 2-х таблиц? По логике вещей могу предположить, что данные из обоих таблиц с одинаковым email-ом. Тогда пиши что-то вроде:
Код:
SELECT a.firstname AS fnm, a.lastname AS lnm, a.email AS eml, b.adress AS adr FROM table1 a, table2 b WHERE a.email = '$sch' AND b.email = '$sch'
AS - тоже задает псевдоним для столбца результата выборки. В данном случае будут объединены две таблицы по полю email.
Также если firstname, lastname, adress встречаются только в одной строчке, то можешь опустить префикс a.(b.) - компилятор и так поймешь.
P.S.: Если будешь когда-нибудь на T-SQL писать, то там для объединения таблиц служит INNER JOIN. Удачи.
 
A

Alexygen

SELECT a.firstname AS fnm, a.lastname AS lnm, a.email AS eml, b.adress AS adr FROM table1 a, table2 b WHERE a.email = '$sch' AND b.email = '$sch'

построил запрос, а он все равно выдают ошибку!
У меня версия MySQL: 4.1.8-max, таблицы называются emails и emails_send в них одинаковый столбец email по которому и надо искать!

Если не трудно напешите как его построить.
Зарание ОГРОМНОЕ СПАСИБО!!!
 
D

DikMax

Я бы написал примерно так:

Код:
SELECT a.*, b.* 
FROM emails AS a
LEFT JOIN emails_send AS b USING (email)
WHERE b.email = '$sch'

Хотя это очень сильно зависит от того, что требуется получить.
 
A

Alexygen

Ошибка: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
 
A

Alexygen

if ($QUERY_STRING=="go=mail&url=mail&search"){
$sel=mysql_query("select email from emails where email='".$sch."'") or die ("Не верный путь. Не могу выбрать.");
while ($res = mysql_fetch_array ($sel))
{
extract($res);
print"<center><font color=\"red\">Такой адрес уже есть!</font></center>";
}
}
 
D

DikMax

Может ты запрос неправильно подставил? Потому что из кода в чем ошибка неясно...
 
A

Alexygen

Я подставлял как Вы написали!

Вот что получается при подстановке:
if ($QUERY_STRING=="go=mail&url=mail&search"){
$sel=mysql_query("SELECT a.*, b.* FROM emails AS a LEFT JOIN emails_send AS b USING (email) WHERE b.email = '$sch'") or die ("Íå âåðíûé ïóòü. Íå ìîãó âûáðàòü.");
while ($res = mysql_fetch_array ($sel))
{
extract($res);
print"<center><font color=\"red\">Òàêîé àäðåñ óæå åñòü â áàçå!</font></center>";
}
}
И ошибка:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\mail.ru\www\modules\mail\mail.php on line 15
 
D

DikMax

Просто если бы была ошибка в запросе, то был бы вызов die, а так придется тебе видно самому разбираться...
 
R

romchiksoad

перед $res поставь @, ошибка возникает потому, что массив пустой!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!