मैं mysql के साथ नाम से आदेशित दो तालिका का परिणाम कैसे प्रदर्शित कर सकता हूं? - माई एसक्यूएल

मेरे पास दो टेबल हैं, प्रत्येक के पास नाम की पहचान करने के लिए एक कॉलम है, मैं नाम से दोनों टेबल रिकॉर्ड्स ऑर्डर को प्रदर्शित करने के लिए क्वेरी कैसे बना सकता हूं

companies
id | company
1  | maxxtor
2  | bhg

persons
id | company
1  | John Thorn
2  | Maria Smith

मैं आउटपुट जैसा होना चाहता हूं:

2  | bhg
1  | John Thorn
2  | Maria Smith
1  | maxxtor

उत्तर:

जवाब के लिए 0 № 1

(निम्नलिखित सभी उदाहरणों का उपयोग करें people नहीं persons क्योंकि मैं ध्यान नहीं दे रहा था, लेकिन मुझे यकीन है कि आप समझेंगे)

आपको जवाब देने के लिए बस एक का उपयोग करें UNION के साथ ORDER BY

select * from people
UNION
SELECT * from companies
ORDER by company

देख: http://sqlfiddle.com/#!2/c9e99/1

लेकिन आप इस बारे में सोचना चाहेंगे कि आप कैसे डेटा संग्रहित कर रहे हैं, कंपनी नामक कॉलम में व्यक्तिगत नाम रखने के लिए टिकाऊ कोड बनाने का सबसे अच्छा तरीका नहीं हो सकता है।

यह ध्यान देने योग्य हो सकता है कि कब UNION पहली तालिका से कॉलम नामों का उपयोग बाद की तालिका के लिए किया जाता है, उदाहरण के लिए यदि आपके पास निम्न था ( http://sqlfiddle.com/#!2/3b761/1 ):

CREATE TABLE people (
id int auto_increment primary key,
name varchar(20)
);
CREATE TABLE companies (
id int auto_increment primary key,
company varchar(20)
);

आप निम्न क्वेरी का उपयोग कर सकते हैं और अभी भी वही परिणाम हैं:

SELECT * from people
UNION
SELECT * from companies
ORDER by name

संबंधित सवाल
सबसे लोकप्रिय