Присоединение к запросам? - PullRequest
       3

Присоединение к запросам?

0 голосов
/ 12 августа 2011

Как я могу объединить эти 2 запроса вместе.

SELECT * 
  FROM tbl_person 
 WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +';

SELECT * 
  FROM tbl_settings 
 WHERE tbl_settings.status_id = '+ status_dg.selectedItem.status_id +';

Я пробовал это, но, похоже, не работает.

SELECT * 
  FROM tbl_person, tbl_settings 
 WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +' 
    OR tbl_settings.status_id = '+ status_dg.selectedItem.status_id +';

Вот немного больше информации о том, что я 'Я пытаюсь сделать.

В обеих таблицах (tbl_person, tbl_settings) status_id является внешним ключом.В моем приложении пользователь имеет возможность создавать и удалять статусы.Поэтому этот запрос, который я пытаюсь написать, предназначен для удаления статуса.Перед удалением статуса мне нужно проверить как tbl_person, так и tbl_settings, чтобы увидеть, существует ли статус удаления в одной из таблиц.Если какая-либо из таблиц соответствует удаляемому статусу, мне нужно повысить статус пользователя.

Надеюсь, это поможет.

Ответы [ 4 ]

1 голос
/ 12 августа 2011

Я немного запутался с вашим вопросом, потому что вы сначала использовали tbl_person и tbl_status, затем вы попытались протестировать, объединив tbl_person и tbl_settings.
К каким двум таблицам вы хотите присоединиться?tbl_person и tbl_settings, как насчет этого?

SELECT *  
FROM tbl_person JOIN tbl_setting  
ON tbl_person.status_id = tbl_settings.status_id  
WHERE tbl_person.status_id = '+status_dg.selectedItem.status_id+'  
1 голос
/ 12 августа 2011

Не знаете, что вам нужно, вероятно, союз?

SELECT * 
  FROM tbl_person 
 WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +'
union
SELECT * 
  FROM tbl_status 
 WHERE tbl_status.status_id = '+ status_dg.selectedItem.status_id +'

1.ВЫ ИЗБЕЖАТЬ, используя «*», чтобы выбрать все записи.Вы должны указать набор столбцов, которые вы хотите получить.
2. Эта строка: WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +' выглядит так, как будто вы делаете что-то не так.Вы должны избегать использования бизнес-логики в SQL

и, да, предоставить больше информации

0 голосов
/ 12 августа 2011

Чтобы объединить таблицы, вам нужно определить поля объединения, которые в вашем случае представляются полями status_id.

Это может работать неправильно, но если вы посмотрите на последнюю строку, вам понадобится это в вашем запросе:

SELECT * 
FROM tbl_person, tbl_settings 
WHERE 
  ( tbl_person.status_id='+status_dg.selectedItem.status_id+' 
  OR tbl_settings.status_id='+status_dg.selectedItem.status_id+' )
  AND tbl_person.status_id = tbl_settings.status_id;
0 голосов
/ 12 августа 2011

Без дополнительной информации о схеме таблицы попробуйте:

SELECT * 
  FROM tbl_person, tbl_settings 
 WHERE tbl_person.status_id = tbl_settings.status_id 
       AND tbl_person.status_id = '+status_dg.selectedItem.status_id+'

Это объединит 2 таблицы tbl_person и tbl_status в status_id и получит только те строки, где status_id = '+status_dg.selectedItem.status_id+'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...