[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объединение таблиц...
asdf27
Раньше была таблица "Размещение" rest, сверял вхождение даты так:
$res2=mysql_query("SELECT * FROM rest WHERE number='$row4[id]' AND '$day2[$i]' BETWEEN DATE(start) AND DATE(end)");


Сейчас добавилась "Бронирование" book, что не правильно в запросе?
$res2=mysql_query("SELECT a.*, b.* FROM rest AS a
RIGHT JOIN book AS b ON a.number = b.number WHERE number='
$row4[id]' AND '$day2[$i]' BETWEEN DATE(start) AND DATE(end)");
SoMeOnE
start, end это поля что ли?
number='$row4[id]' AND '$day2[$i]'

это что значит
asdf27
Поля:

number - номер комнаты
start (DATE) - дата заезда
end (DATE) - дата выезда
guest - id гостя
type - тип

У таблиц одинаковая структура, с той лишь разницей что Размещения в поле type стоит r
, а у бронирования b

$day2[$i] - содержит дату. Т.е. я беру массив дней с начальной по конечную дату и каждый проверяю на вхождение, где id комнаты = id в таблице. Тем самым, я рисую "шахматку". По полю type уже буду определять цвет.

Мне нужно искать вхождение даты среди обеих таблиц...
SoMeOnE
Ну во первых ко все полям нужно добавить алиасы. и обрамляй обратными кавычками поля
например `a`.`number`
Здесь наверное имеется ввиду
WHERE number='$row4[id]' AND '$day2[$i]

что то типа этого
WHERE `a`.`number`='$row4[id]' AND `b`.`number`= '$day2[$i]

Не может одно поле одновременно двум значением равняться

А так сам смотри, что ты хочешь сделать. Не очень ясно
asdf27
Мне нужно было объединить 2 таблицы в одну, дальше найти совпадение. Это ладно, перестроил структуру, добавил несколько полей, которые обновляются по условию.

Спасибо за помощь.
SoMeOnE
asdf27
ну ты же неверно объеденял. при указании полей не указывал алиасы таблиц)
т.е когда при объеденении таблиц ты указываешь поле, нужно указывать из какой таблицы оно.
asdf27
Мне нужно подробно почитать smile.gif Спасибо
Быстрый ответ:

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