Помощь с многостольным запросом SQL - PullRequest
0 голосов
/ 15 июля 2011

Я надеюсь, что кто-нибудь может помочь мне с запросом MySQL.

Я пытаюсь создать запрос в базе данных MySQL, который находит все строки, соответствующие строке 'foo' в column_1 таблицы Table_A, а затем ищет эти строки с помощью 'foo' и всех значений 'bar' вcolumn_2 таблицы Table_A возвращает все строки в Table_b, которые содержат столбец bar в column_8.

Мой начальный запрос:

SELECT * FROM TABLE_A WHERE column_1 LIKE 'foo';

Приведенный выше запрос находит только все данные, соответствующие строке 'foo'в столбце_1 таблицы_A.Какой код мне нужно добавить, чтобы взять приведенные выше результаты и использовать Table_A column_2 для поиска совпадений в column_8 таблицы Table_B?Я не могу понять, как выполнить этот запрос.

Заранее благодарим за любую помощь, которую вы можете предоставить.

Ответы [ 4 ]

3 голосов
/ 15 июля 2011

Из вашего описания не ясно, верно ли это, но похоже, что вы ищете JOIN

SELECT * 
FROM 
    TABLE_A a
  INNER JOIN TABLE_B b 
  ON a.column_2 = b.column_8
 WHERE 
    a.column_1 LIKE 'foo'
     and a.column_2 = 'bar'
1 голос
/ 15 июля 2011

Вы можете использовать подзапрос, чтобы выбрать значения в таблице b для сравнения со столбцом в таблице A:

select * from tableA
Where column1 = 'foo'
and column2 in (select disitnct column8 from tableB where xxxxxxxxx)
0 голосов
/ 15 июля 2011

SELECT * FROM TABLE_A INNER JOIN TABLE_B ON TABLE_A.COLUMN_1 = 'foo' AND TABLE_A.COLUMN_2 = 'bar' AND TABLE_B.COLUMN_8 = 'bar'

Это будет работать на сервере SQL, вероятно, то же самое на MySQL. Попытайся! Вы можете использовать более одного критерия для объединения.

0 голосов
/ 15 июля 2011

http://dev.mysql.com/doc/refman/5.0/en/join.html

Например:

SELECT * FROM TABLE_A 
LEFT JOIN TABLE_B 
USING(COLUMN TO MATCH ON)
WHERE TABLE_A.column_1 LIKE 'foo' 
AND  TABLE_B.column_8 LIKE 'bar';

Я не совсем понимаю, что вы на самом деле пытаетесь сделать, так что это, вероятно, не тот код, который вам нужен.

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