[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка поля по двум таблицам
sjinks
Имеем базу DBTest, в которой существует две таблицы T1 и T2, где в свою очередь присутствует поле field (в каждой таблице). Необходимо реализовать запрос вида:
SELECT field FROM T1 AND T2
но такая конструкция не работает почему-то..

Натолкните на решение, пож smile.gif Спасибо



Спустя 14 минут, 31 секунда (4.10.2011 - 21:24) imbalance_hero написал(а):
`t1`,`t2`

Спустя 15 часов, 29 минут, 33 секунды (5.10.2011 - 12:53) sjinks написал(а):
SELECT field FROM 't1','t2' 


не сработало :(

Спустя 1 минута, 19 секунд (5.10.2011 - 12:54) Winston написал(а):
SELECT `t1`.`field`, `t2`.`field` FROM `t1`, `t2` 

Спустя 22 минуты, 35 секунд (5.10.2011 - 13:17) sjinks написал(а):
ни в какую sad.gif

Спустя 1 минута, 32 секунды (5.10.2011 - 13:19) Winston написал(а):
Тогда
mysql_query("SELECT `t1`.`field`, `t2`.`field` FROM `t1`, `t2` ") or die(mysql_error());

Спустя 1 час, 32 минуты, 1 секунда (5.10.2011 - 14:51) sjinks написал(а):
Winston, :) ну как бы так и есть...по-другому запрос не отправишь

Или, возможно, если вы имели в виду, что конкретно выводит ошибка, то вот:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.'field', 't2'.'field' FROM 't1','t2'' at line 1


...и как-то кавычки вывела криво и строку не полностью, хотя в запросе все есть...

Спустя 1 час, 15 минут (5.10.2011 - 16:06) linker написал(а):
Между одинарными кавычками и апострофами есть большая разница. Взять скопировать и вставить запрос в свой скрипт не так уж и сложно, нафига менять его по своему. От себя добавлю
$res = mysql_query("SELECT `t1`.`field` AS `field1`, `t2`.`field` AS `field2` FROM `t1`, `t2` ") or die(mysql_error());

Спустя 2 часа, 47 минут, 22 секунды (5.10.2011 - 18:53) sjinks написал(а):
linker, я от себя не меняю ничего. Вроде пишу, как советуют(
Снова та же ошибка запроса.
Кстати, работаю в Zend Studio. Хотя это, как мне кажется, значения не имеет...

Спустя 3 часа, 30 минут, 47 секунд (5.10.2011 - 22:24) imbalance_hero написал(а):
sjinks
А теперь свой код сюда вставь через копи-паст.

Спустя 15 минут, 29 секунд (5.10.2011 - 22:39) sjinks написал(а):
кода много. вот конкретно функция,в которой используется искомая конструкция
	public function joinChk(){
if($_SERVER["REQUEST_METHOD"]=="POST"){
if(!empty($_POST['login'])){
$this->login = strip_tags(trim($_POST["login"]));
}else{
echo "Возможно вы забыли ввести логин! <a href='index.php'>Вернуться?</a>";
}
if(!empty($_POST['pass'])){
$this->pass = strip_tags(trim($_POST["pass"]));
}else{
echo "Возможно вы забыли ввести пароль! <a href='index.php'>Вернуться?</a>";
}
$qry = "SELECT 'male'.'login' AS 'login1','female'.'login' AS 'login2' FROM 'male','female'";
$res = mysql_query($qry) or die(mysql_error());
if((mysql_num_rows($res)) != 0){
$arr = mysql_fetch_assoc($res);
foreach($arr as $key=>$val){
if($this->login == $val){
header("Refresh:1; url='./_users/$this->login/account.php'");
}else{
echo "Аккаунт с таким логином не существует! <a href='index.php'>Назад?</a>";
}
}
}
}
else{
header("Refresh:1; url='index.php'");
}
}

Спустя 3 минуты, 2 секунды (5.10.2011 - 22:42) Winston написал(а):
Ёпрст, тебе же сказали, что имена полей/таблиц нужно обрамлять обратным апострофом, а не обычным
Вот так
"SELECT `male`.`login` AS `login1`,`female`.`login` AS `login2` FROM `male`,`female`"

Спустя 2 минуты, 55 секунд (5.10.2011 - 22:45) ancient mariner написал(а):
Под описанное вами условие подходит следующий запрос:

SELECT T1.field, T2.field FROM T1 JOIN T2


А если нужны одинаковые поля field из обеих таблиц, то делайте так:

SELECT T1.field, T2.field FROM T1 JOIN T2 ON T1.field=T2.field

Спустя 51 секунда (5.10.2011 - 22:46) imbalance_hero написал(а):
sjinks
Тебе же выше про кавычки говорили... опять одинарные используешь, ОПЯТЬ!!!! Тебе говорили, надо обратные одинарные, как у нас, а ты снова обычные!!!

Спустя 48 секунд (5.10.2011 - 22:47) Winston написал(а):
Цитата (ancient mariner @ 5.10.2011 - 22:45)

SELECT T1.field, T2.field FROM T1 JOIN T2

А чем отличается от ? :)
SELECT T1.field, T2.field FROM T1, T2

Спустя 1 минута, 13 секунд (5.10.2011 - 22:48) imbalance_hero написал(а):
sjinks
``````````````````````````````````````````
''''''''''''''''''''''''''''''''''''''''''
Видишь разницу?

Спустя 3 минуты, 27 секунд (5.10.2011 - 22:52) ancient mariner написал(а):
Цитата (Winston @ 5.10.2011 - 19:47)
Цитата (ancient mariner @ 5.10.2011 - 22:45)

SELECT T1.field, T2.field FROM T1 JOIN T2

А чем отличается от ? :)
SELECT T1.field, T2.field FROM T1, T2

Конструкции JOIN у вас нет smile.gif

Да не в апострофах дело, угомонитесь вы smile.gif Правильный запрос я написал выше.


Спустя 1 минута, 35 секунд (5.10.2011 - 22:53) imbalance_hero написал(а):
ancient mariner
1. НЕПРАВИЛЬНЫЙ!
2. В АПОСТРОФЕ ДЕЛО! Ошибок не знаешь? Если не знаешь, то не говори ничего!
На скрипт, запусти у себя, ДОКАЖИ, ЧТО НЕ В КАВЫЧКАХ ДЕЛО! ЖДУ СКРИН_ШОТ ВЫПОЛНЕННОГО КОДА В PMA:
SELECT 'T1'.'field', 'T2'.'field' FROM 'T1', 'T2'

Спустя 7 минут, 30 секунд (5.10.2011 - 23:01) ancient mariner написал(а):
Цитата (imbalance_hero @ 5.10.2011 - 19:53)
SELECT 'T1'.'field', 'T2'.'field' FROM 'T1', 'T2'

Этот пример с обратными кавычками тоже работает smile.gif Виноват.

Спустя 8 минут, 55 секунд (5.10.2011 - 23:10) sjinks написал(а):
Прошу прощения за невнимательность, посчитал нужные кавычки за обычные. Winston, ваш вариант сработал. Всем спасибо smile.gif

Спустя 9 минут, 21 секунда (5.10.2011 - 23:19) imbalance_hero написал(а):
ancient mariner
Кавычки для того, чтобы ТИПИЗИРОВАТЬ и разделить команды от данных. Они не являются обязательными, но считаются рекомендательными при работе с БД.
SELECT `select` FROM `from`
Быстрый ответ:

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