Автор Тема: MYSQL  (Прочитано 4623 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« : 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?...или ещё какие-нибудь средства, чтобы сначала проверить существование записи во второй таблице, которая относится к первой?

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
MYSQL
« Ответ #1 : 06 Февраля 2006, 09:36:33 »
DartSidius
Синтаксис оператора UNION

Цитировать
DartSidius:
можно в sql в запросе использовать логику, типа if?...

можно.
[off]Безработный[/off]

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #2 : 06 Февраля 2006, 10:38:18 »
for_i_0

и как?

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
MYSQL
« Ответ #3 : 06 Февраля 2006, 10:56:16 »
DartSidius
а ссылка приведенная выше тебя ни на какую мысль не навела ?

Цитировать
DartSidius:
и как?

SELECT if (условие, true, false) ...
[off]Безработный[/off]

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #4 : 06 Февраля 2006, 11:06:05 »
а т.е.

if(table2.parent=table1.id,table2.parent=table1.id) ?...если на false не надо обрабатывать?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
MYSQL
« Ответ #5 : 06 Февраля 2006, 13:17:51 »
Цитировать
DartSidius:
но записи во второй таблице может и небыть...т.е. если её не будет, то записть из первой таблицы не выведется,

для таких запросов служит LEFT JOIN

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #6 : 06 Февраля 2006, 13:25:39 »
RomikChef

а как пользоваться...можно пример?

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #7 : 06 Февраля 2006, 13:41:54 »
RomikChef

спасибо...с left join сам разобрался...теперь возник другой вопрос

получается я соединяю 2 таблицы...продположем что в этих таблицах есть одинаковое поле comment...но содержит разную инфу...обрабатываю я потом разпрос так while (my $db_ln = $query->fetchrow_hashref()) {}

т.е. по идее чтобы отобразить поле, мне потребуется ввести $db_ln->{\'comment\'}...но их 2 и они не отобразятся естественно...как это обойти?...причем менять структуру нельзя таблиц, т.е. переименовывать

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
MYSQL
« Ответ #8 : 06 Февраля 2006, 15:24:20 »
select t2.comment as comment2, ...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28