Forum Webscript.Ru
Общие => Базы данных => Тема начата: DartSidius от 04 Февраля 2006, 18:02:28
-
Есть 2 таблицы в mysql...
содержание (условно)
первая:
table1
id_1,name_1
вторая:
table2
id_2,parent_2,name_2
суть я вывожу списки с первой таблицы, но при этом мне надо привязать к первой, вторую таблицу...я это делаю так
SELECT table1.*,table2.* FROM table1,table2 WHERE table2.parent=table1.id
но записи во второй таблице может и небыть...т.е. если её не будет, то записть из первой таблицы не выведется, по понятным причинам...можно в sql в запросе использовать логику, типа if?...или ещё какие-нибудь средства, чтобы сначала проверить существование записи во второй таблице, которая относится к первой?
-
DartSidius
Синтаксис оператора UNION (http://www.mysql.ru/docs/man/UNION.html)
DartSidius:
можно в sql в запросе использовать логику, типа if?...
можно.
-
for_i_0
и как?
-
DartSidius
а ссылка приведенная выше тебя ни на какую мысль не навела ?
DartSidius:
и как?
SELECT if (условие, true, false) ...
-
а т.е.
if(table2.parent=table1.id,table2.parent=table1.id) ?...если на false не надо обрабатывать?
-
DartSidius:
но записи во второй таблице может и небыть...т.е. если её не будет, то записть из первой таблицы не выведется,
для таких запросов служит LEFT JOIN
-
RomikChef
а как пользоваться...можно пример?
-
RomikChef
спасибо...с left join сам разобрался...теперь возник другой вопрос
получается я соединяю 2 таблицы...продположем что в этих таблицах есть одинаковое поле comment...но содержит разную инфу...обрабатываю я потом разпрос так while (my $db_ln = $query->fetchrow_hashref()) {}
т.е. по идее чтобы отобразить поле, мне потребуется ввести $db_ln->{\'comment\'}...но их 2 и они не отобразятся естественно...как это обойти?...причем менять структуру нельзя таблиц, т.е. переименовывать
-
select t2.comment as comment2, ...