MySQL SELECT * WHERE column = 'значение' из 2 таблиц - PullRequest
0 голосов
/ 27 февраля 2020

Edit2:

Мне нравится получать все значения из 2 таблиц ГДЕ значение highlight = '1' highligh - столбец, присутствующий в обеих таблицах. Обе таблицы имеют уникальную структуру.

Я хочу получить все данные из обеих таблиц, где highlight = '1'

 SELECT * FROM painting, instaview WHERE highlight='1'

... обе дают мне следующую ошибку: «Столбец« выделение »в том, где предложение неоднозначно»

Я много искал и много нашел об этой ошибке, но только сложные причины JOIN, которые отличаются от моего случая. я знаю, что столбец находится в обеих таблицах, но я хочу, чтобы результаты этих двух запросов к таблицам были объединены.

Edit1: по запросу структура обеих таблиц:

Column    Type  Comment
id        int(6) Auto Increment 
category  varchar(3)    
filename  varchar(30)   
title     varchar(200)  
material  varchar(200)  
year      varchar(4)    
highlight tinyint(1)
active    tinyint(1)

Ответы [ 3 ]

1 голос
/ 27 февраля 2020

Вы должны сказать, из какой таблицы вы запрашиваете выделение.

Можете ли вы попробовать так?

SELECT * FROM painting JOIN instaview ON painting.highlight='1'
0 голосов
/ 27 февраля 2020

Если вы хотите highlight='1' в обеих таблицах и не хотите указывать таблицу, вы можете использовать

SELECT * 
FROM painting 
JOIN instaview USING (highlight)
WHERE highlight='1'

Поля, используемые в USING, являются «комбинированными», и квалификация имени таблицы не требуется .

PS. Это «плохая практика» - указывайте имена таблиц для всех полей, когда в источнике запроса имеется более одной таблицы (даже если какое-то имя поля уникально для источника данных - оно присутствует только в одной таблице).

0 голосов
/ 27 февраля 2020

Я не знал о «квалификации», но это объединило мои данные в несколько столбцов, я просто хотел результаты обеих таблиц. После дополнительных поисков я нашел ключевое слово: UNION

SELECT * FROM painting WHERE highlight=1 
UNION
SELECT * FROM instaview WHERE highlight=1

Это помогло! (мне нравится извиняться за то, что я не очень ясно ответил на мой вопрос, для меня все это было совершенно новым)

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