Как получить значение отдельного поля в нескольких полях в нескольких таблицах? - PullRequest
0 голосов
/ 15 июля 2010

у меня есть две таблицы х и у. В этой таблице x есть x1 как страна, x2 как страна, y таблица имеет y1 как страна, y2 имеет страну. Для этих данных, как я могу получить различные значения страны в этой таблице с этим полем четыре страны?

До этого я использовал одну страну в одной таблице, как это,

$query="select distinct(`x1`) from x";

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

Пожалуйста, предоставьте идею для этого. Заранее спасибо ...

Ответы [ 3 ]

1 голос
/ 15 июля 2010

не самый эффективный запрос, но попробуйте это:

SELECT `x1` FROM x
UNION 
SELECT `x2` FROM x
UNION 
SELECT `y1` FROM y
UNION 
SELECT `y2` FROM y
1 голос
/ 15 июля 2010

Union - лучший ответ на этот вопрос, поскольку именно для этого он и предназначен.

Единственный другой метод, который я могу придумать, это полное внешнее соединение - что-то вроде:

select coalesce(cx.country,cy.country) country 
from (select distinct country from x) cx
full outer join (select distinct country from y) cy 
on cx.country = cy.country

Однако вы не можете выполнять полные внешние объединения в MYSQL (насколько я знаю) - и обходные пути включают в себя объединения ...

1 голос
/ 15 июля 2010

Идея: использовать СОЮЗ

...